Ich versuche festzustellen, ob eine bestimmte Zelle einen TRUE-Wert aus der bedingten Formatierung zurückgibt und dann die gesamte Zeile (oder nur eine Zelle) hervorhebt, wenn sie zurückkehrt wahr. Die bedingte Formatierung befindet sich in Spalte B und möchte die gesamte Zeile hervorheben.Testen, ob die bedingte Formatierung TRUE VBA ist und die gesamte Zeile markieren
Ich versuche letztlich, Zahlen in Spalte F zu addieren, wenn die bedingte Formatierung in Spalte B TRUE zurückgegeben hat, aber ich kann diesen Teil herausfinden, wenn ich einfach feststellen kann, ob die bedingte Formatierung wahr zurückgegeben hat oder nicht. Ich habe jedes Forum, jede Seite, jedes Beispiel usw. durchsucht. Ich konnte es finden und konnte es immer noch nicht schaffen.
Ich führe bedingte Formatierung durch, um eine große Datenmenge für mehrere verschiedene Instanzen zu durchsuchen. Der einzige Weg, wie ich es herausfinden konnte, war, jede Bedingung als separates bedingtes Format auszuführen. Hier ist ein Teil eines der U-Boote (jede Unter hat etwa 30 bedingte Formate und es gibt etwa 10 U-Boote):
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=ISNUMBER(SEARCH(""Acadia Realty Trust "",B1))"
Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=ISNUMBER(SEARCH(""Aimco "",B1))"
Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=ISNUMBER(SEARCH(""Alexandria Real Estate Equities, Inc"",B1))"
Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
ich nur sagen, dass zu sagen, dass ich nicht einfach den gleichen Test überprüft mit bedingtem Formatierung, weil es fast 300 verschiedene Tests gibt.
UPDATE:
Ich habe versucht, was Jeep vorgeschlagen, und dann, was ich unter den Bau mehrerer U-Boote, die jeweils mit einem Array, um alle 264 Bedingungen zu passen kommentiert, aber wenn ich es hervorgehoben so tat nur das letztes Array, nicht alle Bedingungen, die in den ersten Subs erfüllt wurden. Ich benutzen den gleichen Code wie @Jeeped unten vorgeschlagen, stellte aber 24 Bedingungen in der Anordnung, und ich kann, dass Code in 11 U-Boote, und meinem primären Code sieht wie folgt aus:
Public Sub REIT()
range("B:B").Select
Call A25
Call B25
Call C25
Call D25
Call E25
Call F25
Call G25
Call H25
Call I25
Call J25
Call K25
End Sub
ich nur zwei Hilfe am Ende mit Spalten, um die Kriterien neu zu suchen und die benötigten Daten zu summieren, aber ich habe immer noch ein Problem mit der Hervorhebung.
Wie über einen separaten Check Spalte (die Sie verstecken können, wenn Sie mögen), UDF enthält, in dem Sie alle verschiedenen Bedingungen überprüfen, und wenn true, gebe 1 in die Zelle zurück, sonst 0. Dann muss man bei der bedingten Formatierung überprüfen, ob die Check-Spalte 1 ist. –
Sie können CF direkt verwenden, um die ganze Zeile zu färben. Sie können bedingte Logik verwenden, um Werte mit Formeln zu summieren. Irgendein bestimmter Grund, den Sie das in VBA machen wollen? Gemessen an Ihrem Code sind Sie nicht sehr erfahren mit VBA. Wenn Sie möchten, dass VBA die Farbgebung übernimmt, benötigen Sie keine bedingte Formatierung. Verwenden Sie ein ODER das andere, nicht beides. – teylyn
@ChrisMelville, Ich weiß nicht genug über VBA, um eine UDF zu erstellen, die lang genug ist, um alle Bedingungen zu überprüfen. – Excellerator