vba在相邻列中着色字体

时间:2015-08-04 11:29:40

标签: excel-vba vba excel

在单元格E6中E列的特定电子表格中,我将值0或1,将数字转换为二进制。在相邻的单元格中,我有值,即在单元格F6和G6中。如果列E中的值为0,我希望列F和G中的字体为灰色RGB(192,192,192),如果列E中的值为1则我希望字体在列F和G中变为粗体。 我需要以编程方式执行此操作,因为我试图在更改事件上实现此目的。

1 个答案:

答案 0 :(得分:4)

如果您希望在工作表上更改某些内容时发生着色,我们需要查看Worksheet_Change事件。

ALT + F11 进入VB编辑器,或者在Developer选项卡下选择Visual Basic。

在编辑器中,右键单击要进行此格式设置的工作表,然后选择“查看代码”。

将色彩代码粘贴到:

Private Sub Worksheet_Change(ByVal Target As Range)

        Dim lRow As Long
        Dim c As Range

        'Get the last used row in column E
        lRow = Me.Cells(Rows.Count, "E").End(xlUp).Row

        'Go through column E and check values
        For Each c In Range("E1:E" & lRow)
                If c.Value = 0 Then
                        'Offsets to column F, G and colors font
                        'if the value in column E is 0
                        c.Offset(0, 1).Font.Color = RGB(192, 192, 192)
                        c.Offset(0, 2).Font.Color = RGB(192, 192, 192)
                End If
        Next c

End Sub