Czy ktoś ma specjalną wskazówkę (zdecydowanie nie preferowaną przez VBA), aby systematycznie informować, czy komórka ma ustaloną wartość lub czy jest formułą pochodną?
Mam do czynienia z niektórymi danymi, w których osadzone są niechlujne sumy pośrednie i próbuję sprawdzić, czy mogę oddzielić nieprzetworzone linie.
Odpowiedzi:
Użyj formatowania warunkowego. Wybierz opcję „Użyj formuły, aby określić, które komórki sformatować” i wpisz „= NOT (Cellhasformula)”. Spowoduje to sformatowanie wszystkiego, co jest zakodowane na stałe.
źródło
Wybierz odpowiednie komórki, naciśnij Ctrl+, Ga następnie wybierz,
Special
aby uzyskać następujące okno dialogowe:Następnie określ typ komórek, które chcesz i kliknij,
OK
a tylko te typy komórek pozostaną wybrane.źródło
Począwszy od programu Excel 2013 możesz:
Tutaj pełna dokumentacja
źródło
lub aby wyświetlić tylko formuły:
źródło
Dwie inne metody to:
źródło
Wiem, że powiedziałeś, że nie preferujesz VBA, ale jeśli nie znajdziesz innych rozwiązań, obiekt Range ma właściwość HasFormula.
Zwraca: Prawda, jeśli wszystkie komórki w zakresie zawierają formuły; Fałsz, jeśli żadna z komórek w zakresie nie zawiera formuły; w przeciwnym razie nie ma.
Źródło: http://msdn.microsoft.com/en-us/library/bb208626%28v=office.12%29.aspx
źródło
Jeśli chcesz przechowywać plik Excel w formacie skoroszytu bez makr, powinieneś unikać zarówno VBA, jak i makr (tzn. Podejścia XL4 / XLM sugerowane w innych odpowiedziach). W tej odpowiedzi założyłem, że plik Excel nie zawiera makr.
Jeśli używasz MS-Excel 2013, możesz użyć:
Jeśli używasz starszych wersji MS-Excel (np. 2010, 2007), nie ma prawdziwej funkcji pozwalającej ustalić, czy komórka zawiera formułę. Można to jednak przybliżyć, używając:
Powyższa funkcja zwraca:
źródło
Znacznie wcześniej niż pierwotna data, ale jeśli jest przydatna dla kogokolwiek, udało mi się obejść ten problem, wybierając zakres komórek, a następnie używając Zamień (Ctrl + H), ustawiając go na „Szukaj w” Formułach i zamień równe
=
z apostrofem równa się'=
Ten przyniósł wszystkie formuły, ale oczywiście również konwertować rzeczy jak gdyby $ C $ 1 zawierał
=if($A1=$B1,"Match","Different")
się'=if($A1'=$B1,"Match","Different")
Zwróć uwagę
A1'=B1
na środek formuły, który może być problematyczny, ale nadal oznacza, że możesz zobaczyć formuły, choć niepragmatycznie. Można użyć funkcji SUBSTITUTE, aby zmienić to z powrotem, więc $ D $ 1 zawiera=SUBSTITUTE(C1,"'=","=")
, a następnie po prostu skopiuj do Notatnika i wklej z powrotem do $ E $ 1Innym sposobem byłoby „pokazanie formuł”, ale pokazałoby to formuły dla każdej komórki, a nie tylko wybranego zakresu.
źródło
źródło