更改按钮颜色

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

我正在使用 Excel,但遇到了麻烦,我需要单击时会改变颜色的按钮。我可以使用命令按钮,但需要我将每个按钮单独标记为“CommandButton1、CommandButton2、CommandButton3 ...CommandButton1000”。我将使用其中的许多宏,并想知道我应该做什么,这样我就可以有一个通用宏程序,可以点击形状/命令按钮。这个程序只需要在点击时来回改变颜色即可。 这就是我正在做的事情。

'Private Sub CommandButton_Click()

Select Case CommandButton1.BackColor

    Case -2147483633 'Default Grey
    col = 228 'FP Red
    Case Else
    col = -2147483633 'Default Grey
End Select
 
CommandButton1.BackColor = col
 
End Sub
excel vba commandbutton
1个回答
0
投票

我建议在工作簿中插入一个模块并在那里编写通用的颜色更改代码。 然后在带有按钮的工作表中,只需调用该代码并传递按钮单击的子按钮即可。 模块子看起来像这样:

Public Sub ColorChange(ByRef btn As Object)
    Select Case btn.Name
    Case "CommandButton1"
        btn.BackColor = RGB(200, 0, 0)
    Case "CommandButton2"
        btn.BackColor = RGB(0, 200, 0)
    Case "CommandButton3"
        btn.BackColor = RGB(0, 0, 200)
    Case "CommandButton4"
        btn.BackColor = RGB(200, 0, 200)
    End Select
End Sub 'ColorChange

按钮单击看起来像这样:

Private Sub CommandButton1_Click()
    Call ColorChange(Me.CommandButton1)
End Sub

您可以根据单击的按钮进行任何更改。 此外,您可以为按钮命名任何您想要的名称。 右键单击该按钮并转到属性,您可以更改名称。 按钮的典型命名约定是在控件前加上 cmd 或 btn 和名称作为前缀。例如,btnColor1。 但这当然取决于你。

附注用于大量控件的控件数组可能是一个好主意。 看看这个: https://bettersolutions.com/excel/macros/vba-control-arrays.htm

© www.soinside.com 2019 - 2024. All rights reserved.