Ich verwende den folgenden VBA-Code, um bedingte Formatierung anzuwenden.Vba nur bedingte Formatierung Ober-/Unterrand anwenden?
Sub ResetConditions()
With Worksheets(1).Range("A9:P1048576")
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=ROW(B9)=ROW(OFFSET($B$9,COUNTA($B:$B)-2,0))"
With .FormatConditions(.FormatConditions.Count)
.SetFirstPriority
With .Borders
.LineStyle = xlContinuous
.Weight = xlThin
.Color = vbRed
End With
End With
End With
End Sub
Die Grenze ist, da dies zeigt:
Aber ich will es so aussehen:
Ich versuche nur oben/unten eingestellt Grenzen wie folgt:
Sub ResetConditions()
With Worksheets(1).Range("A9:P1048576")
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=ROW(B9)=ROW(OFFSET($B$9,COUNTA($B:$B)-2,0))"
With .FormatConditions(.FormatConditions.Count)
.SetFirstPriority
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.Color = vbRed
End With
End With
End With
End Sub
Aber ich bekomme immer einen Fehler beim Festlegen der Linestyle-Eigenschaft der Border-Klasse.
Kann mir bitte jemand zeigen, wo ich falsch liege?
Versuchen Sie, eine Makroaufnahme, während die bedingte Formatierung Einstellung oben mit Rahmenformat Sie werden sehen, dass 'Excel' selbst' .Borders (xlTop) 'anstelle von' .Borders (xlEdgeTop) 'verwendet. Also wahrscheinlich [Borders Objekt] (https://msdn.microsoft.com/en-us/library/office/ff837809.aspx) für Bereiche unterscheidet sich von 'Borders' Sammlung von [FormatCondition.Borders] (https: // msdn. microsoft.com/en-us/library/office/ff196030.aspx) auf diese nicht dokumentierte Weise. –