Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 根据单击按钮为每行添加颜色_Excel_Vba - Fatal编程技术网

Excel 根据单击按钮为每行添加颜色

Excel 根据单击按钮为每行添加颜色,excel,vba,Excel,Vba,我每行都有一串按钮。(范围A1:A200) 我想单击每一个,然后他将对整行(范围为A:Q)执行所需的操作(例如颜色)。 按照目前我的代码设置方式,我可能需要对btn_click函数进行更改,然后触发它 'This creates buttons for the selected range Range("A2:A200").Select Dim btn As Button Application.ScreenUpdating = False ActiveShee

我每行都有一串按钮。(范围A1:A200) 我想单击每一个,然后他将对整行(范围为A:Q)执行所需的操作(例如颜色)。 按照目前我的代码设置方式,我可能需要对btn_click函数进行更改,然后触发它

'This creates buttons for the selected range

    Range("A2:A200").Select
    Dim btn As Button
    Application.ScreenUpdating = False
    ActiveSheet.Buttons.Delete
    Dim t As Range
    ' Find the First & Last Row number of selection
    Dim x As Long, y As Long
    x = Selection.Rows(1).Row
    y = Selection.Rows.Count + x - 1

    For i = x To y ' Loop from first row to last row
       Set t = ActiveSheet.Range(Cells(i, 1), Cells(i, 1))
       Set btn = ActiveSheet.Buttons.Add(t.Left, t.Top, t.Width, t.Height)
       With btn
         .OnAction = "btn_Click"
         .Caption = "LineBreak "
         .Name = "Line Break "
       End With'
    Next i

    Application.ScreenUpdating = True
End Sub


表单按钮非常简单:

Sub btn_Click()
    Intersect(ActiveSheet.Shapes(Application.Caller).TopLeftCell.EntireRow, Range("A:Q")).Interior.Color = vbRed
End Sub

作为初学者,请阅读如何避免使用select(这里有一篇很棒的文章)。其次,请提供您所尝试的,因为我看不到任何试图设置颜色的代码。合适的属性是
.interior.color=rgb(r,g,b)
interior.colorindex=0
Hi,我在标题和名称上添加了循环结果,效果很好。但是,你有没有想法,比如说,用
内部…
部分替换为
.borders(xlbottom).weight=xlmedium
之类的东西,而不是内部颜色。啊,原来是borders。他正在使用边界。非常感谢
Sub btn_Click()
    Intersect(ActiveSheet.Shapes(Application.Caller).TopLeftCell.EntireRow, Range("A:Q")).Interior.Color = vbRed
End Sub