J'utilise le code vba suivant pour appliquer une mise en forme conditionnelle.Vba appliquer la mise en forme conditionnelle limite supérieure/inférieure uniquement?
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
La frontière est montrant comme ceci:
Mais je veux que ça ressemble à ceci:
Je suis en train de mettre uniquement en haut/bas frontières comme suit:
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
Mais je continue d'obtenir une erreur impossible de définir la propriété linestyle de la classe de bordure.
S'il vous plaît quelqu'un peut-il me montrer où je vais mal?
Essayez d'enregistrer une macro lors de la configuration de mise en forme conditionnelle à l'aide supérieure format de bordure. Vous verrez, que 'Excel' utilisera' .Borders (xlTop) 'au lieu de' .Borders (xlEdgeTop) '. Donc, probablement [Borders Object] (https://msdn.microsoft.com/en-us/library/office/ff837809.aspx) pour les plages diffère de la collection 'Borders' de [FormatCondition.Borders] (https: // msdn. microsoft.com/en-us/library/office/ff196030.aspx) de cette manière non documentée. –