使用宏更改当前行颜色

时间:2018-05-09 04:40:32

标签: excel vba

我试图在Excel中使用表单控件按钮来更改整行的颜色,并且能够在后续行上复制该按钮,但只有按钮操作会影响与所述按钮对应的行。当前的宏是:

    Sub RED()
    Rows("3:3").Select
    With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 10066431
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
    End Sub

这适用于第一个按钮,但是当我尝试复制(拉下更多按钮)时,它们只会影响原始代码中所述的行(3:3)我无法找到方法,如果有,则选择当前行而不是定义的行3。

1 个答案:

答案 0 :(得分:0)

如果您的表单控件CommandButtons与行正确对齐,请将以下两个宏放在标准模块上,如Module1。

Sub RED(iRow As Long)
With Rows(iRow).Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 10066431
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With
End Sub

Sub ColorRow()
Dim r As Long
Dim shp As Shape
Set shp = ActiveSheet.Shapes(Application.Caller)
r = shp.TopLeftCell.Row
Call RED(r)
End Sub

现在将宏ColorRow分配给所有CommnadButtons。因此,当您单击CommandButton时,代码将为CommandButton对齐的行着色。