VBA中活性细胞的选择

时间:2017-07-31 13:22:14

标签: excel vba excel-vba

我是VBA的新手并且正在通过练习来学习它,第一个宏之一就是为一个红色的盒子着色如果我点击一个宏按钮。我最初录制了一个宏来检查它用来执行该操作的VBA代码

Sub MakeMeRed()
'
' MakeMeRed Macro
'
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 192
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub

我用谷歌搜索发现有另一种选择活动细胞的方法,所以我尝试用这种方法来填充细胞。

Sub TestMacro()
'
' TestMacro Macro
'
    With ActiveCell
        '.Value = "250"
        .Color = 200
    End With
End Sub

但是这段代码不起作用,它不会填充所选单元格的颜色。你能指出我出错的地方吗?

2 个答案:

答案 0 :(得分:2)

这里有2种方式来引用单元格内的颜色。

使用ActiveCell.Interior.ColorIndexActiveCell.Interior.ColorActiveCell.Interior.Color可以获得4个不同的值。

Sub TestMacro()

    With ActiveCell
        .Value = 1
        .Interior.ColorIndex = 3

        .Offset(1, 1) = 21
        .Offset(1, 1).Interior.Color = RGB(255, 0, 0)

        .Offset(1, 2) = 22
        .Offset(1, 2).Interior.Color = vbRed    'vbRed = 255

        .Offset(1, 3) = 23
        .Offset(1, 3).Interior.Color = "&HFF"   'FF = 255; &H is for typeinfo

        .Offset(1, 4) = 24
        .Offset(1, 4).Interior.Color = 255
    End With

End Sub

看起来像这样:

enter image description here

答案 1 :(得分:0)

要使两者等同,该部分中的ActiveCell是第一个中的选择。要更改颜色,您需要在某处的内部部分滑动。您可以With ActiveCell.Interior或使用阻止.Interior.Color = 200