我正在创建一个工具栏按钮,用于将颜色从白色背景,黑色字体更改为选定区域内的白色字体黑色背景。 (将用于P& L'表,资产负债表等会计表)。
但是我还需要按钮中的一些功能来查看所选的单元格,找到任何现有的边框并将它们变为白色。通过使用布尔值或检查背景颜色是否为黑色,然后将现有边框变为白色来进行Perhabs。我不需要制作任何新的边框,只需要反转现有的边框。
这就是我已经拥有的,但它只是使所有边框变白:
Dim Background As Boolean
Dim cel As Range
Dim selectedRange As Range
Set selectedRange = Application.Selection
With Selection.Borders
For Each cel In selectedRange.Cells
If cel.Borders(xlEdgeTop).LineStyle <> xlLineStyleNone Then
.Color = RGB(255, 255, 255)
End If
If cel.Borders(xlEdgeBottom).LineStyle <> xlLineStyleNone Then
.Color = RGB(255, 255, 255)
End If
Next cel
End With
希望你能帮助我:)
答案 0 :(得分:0)
您正在将颜色应用于Selection.Borders
集合中的每个边框,因为这是With
变量。只需设置cel.Borders(xlEdgeTop)
Dim cel As Range
Dim selectedRange As Range
Set selectedRange = Application.Selection
For Each cel In selectedRange.Cells
With cel.Borders
If .Item(xlEdgeTop).LineStyle <> xlLineStyleNone Then
.Item(xlEdgeTop).Color = vbWhite
End If
If .Item(xlEdgeBottom).LineStyle <> xlLineStyleNone Then
.Item(xlEdgeBottom).Color = vbWhite
End If
End With
Next cel
您还可以使用两个With
块:With cel.Borders(xlEdgeTop)
和With cel.Borders(xlEdgeBottom)
,然后使用.LineStyle
和.Color
。你也可以完全跳过With
块,因为它在这里确实没有节省太多(cel.Borders
- &gt; .Item
)。