Czy jest możliwe warunkowe sformatowanie komórki, jeśli komórka zawiera formułę (aby ostrzec siebie i innych użytkowników podczas aktualizacji komórki)?
Czy jest możliwe warunkowe sformatowanie komórki, jeśli komórka zawiera formułę (aby ostrzec siebie i innych użytkowników podczas aktualizacji komórki)?
Odpowiedzi:
Aby to zrobić, możesz użyć formatowania warunkowego, używając XLM i nazw zakresów
Mam dłuższy artykuł na temat używania XLM z nazwami zakresów i formatowaniem warunkowym do automatycznego formatowania arkuszy kalkulacyjnych zgodnie z zawartością komórki
xlmbez ostrzeżeń makro, MSFT zmieniło podejście bezpieczeństwa.
Opierając się na odpowiedzi brettdj, ponieważ powiązanie z tym artykułem było dość trudne do naśladowania:
=ISFORMULA(INDIRECT("rc",FALSE))$1:$1048576jako zakres do zastosowania. W przeciwnym razie możesz wprowadzić dowolny zakres.Formuła INDIRECT("rc",FALSE)zwraca odwołanie do bieżącej komórki. Jeśli kiedykolwiek użyję tego w arkuszu, tworzę Zdefiniowaną Nazwę o nazwie coś podobnego ThisCelli używam tego w formule, na wypadek, gdybym wrócił po latach i pomyślał „po co to do diabła?”.
INDIRECT("rc",FALSE), użyj odwołania względnego z lewą górną komórką w zakresie formatowania warunkowego „Dotyczy”. Na przykład, jeśli masz zakres „Dotyczy” =$A$3:$F$300, użyj =ISFORMULA(A3). Działa to, ponieważ formatowanie warunkowe obsługuje odwołania względne, zobacz to
Możesz wypróbować te:
Utwórz niestandardową funkcję z następującym kodem:
Function IsFormula(ByVal Ref As Range) As Variant
If Ref.Cells.Count > 1 Then
IsFormula = CVErr(xlErrNA)
Else
IsFormula = Ref.HasFormula
End If
End Function
Przykład:
Aby sprawdzić, czy jakieś komórki w kolumnie A mają jakieś formuły:
=IsFormula(A1)Jest to bardzo prosty sposób, przetestowany w programie Excel 2016.
Podkreśl zakres, do którego chcesz to zastosować, powiedzmy od A3:W20. Przejdź do formatowania warunkowego i wybierz NEW RULE | USE A FORMULA TO DETERMINE WHICH CELLS TO FORMAT.
Wprowadź =isformula(A3)i wybierz format, który chcesz zastosować.
A3jest oczywiście odniesieniem do pierwszej komórki w twoim zakresie, ale to formatowanie stosuje się do wszystkich. W rezultacie w twoim zakresie każda komórka będąca formułą jest warunkowo sformatowana.
Nowsze witryny pomocy zalecają funkcję zdefiniowaną przez użytkownika:
Function IsFormula(cell) as boolean
IsFormula = cell.HasFormula
End Function
Następnie użyj tej funkcji jako warunku
W rzeczywistości program Excel 2013 i nowsze wersje mają IsFormulajako funkcję standardową.
Możesz także użyć formatowania warunkowego:
=HasNoFormulaTestowane przy użyciu programu Excel 2010.