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
xlm
bez 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:$1048576
jako 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 ThisCell
i 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ć.
A3
jest 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ą IsFormula
jako funkcję standardową.
Możesz także użyć formatowania warunkowego:
=HasNoFormula
Testowane przy użyciu programu Excel 2010.