为了设定前提,我想在取消选中该复选框以及选中该复选框以使单元格可见并格式化时隐藏 E4:F11 (这确实有效,但需要更多)。
第一件事是这段代码在范围周围创建了一个边框,这是我确实想要的,但我想知道是否有一种方法可以在某个范围内创建水平和/或垂直边框。例如,在下面的屏幕截图中,我希望 E5:F5 的底部、E7:F7 的底部和 E9:F9 的底部有细边框,并且仍然在整个范围 (E4:F11) 上保持粗边框。
第二件事;使用下面的代码,我想知道是否有一种方法可以只更改某些单元格的颜色。例如,在此屏幕截图中,我希望 E5、E7、E9 和 E11 填充白色(其余为红色)。
我在工作表的其他部分使用 ActiveX 复选框和 ActiveX 按钮。这是为了工作,所以我无法上传表格,但我可以回答更多问题并根据需要上传更多屏幕截图。我对使用 VBA 和 ActiveX 控件还很陌生,因此我将不胜感激您的帮助!
Excel公式:
Private Sub CheckBox5_Click()
With ActiveSheet
If .Range("E4").Interior.Color = vbWhite Then
With .Range("E4:E11", "F5:F11")
.Interior.Color = RGB(220, 86, 65)
.Font.Color = RGB(0, 0, 0)
End With
Range("E4:E11", "F5:F11").BorderAround _
LineStyle:=xlContinuous, _
Weight:=xlThick, _
Color:=RGB(0, 0, 0)
Else
With .Range("E4:E11", "F5:F11")
.Font.Color = RGB(255, 255, 255)
.Interior.ColorIndex = xlNone
With .Borders
.LineStyle = xlNone
End With
End With
End If
End With
End Sub
迭代范围内的区域。其他选项是
xlDiagonalDown, xlDiagonalUp, xlEdgeLeft, xlEdgeRight, xlEdgeTop, xlInsideHorizontal, or xlInsideVertical.
Dim a As Range
With ActiveSheet
For Each a In .Range("E5:F5,E7:F7,E9:F9").Areas
a.Borders(xlEdgeBottom).LineStyle = xlContinuous
Next
End With