使用 VBA 添加水平和/或垂直边框

问题描述 投票:0回答:1

为了设定前提,我想在取消选中该复选框以及选中该复选框以使单元格可见并格式化时隐藏 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

Screenshot

excel vba activex excel-2016
1个回答
0
投票

迭代范围内的区域。其他选项

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
© www.soinside.com 2019 - 2024. All rights reserved.