我正在使用excel,但遇到了麻烦,我需要一些按钮,这些按钮在单击时会改变颜色。我可以使用命令按钮,但需要将每个按钮分别标记为“ CommandButton1,CommandButton2,CommandButton3 ... CommandButton1000”。我将使用它们中的许多,并想知道应该怎么做,这样我就可以在一个形状/命令按钮上放一个通用的宏程序。单击该程序时,只需要来回更改颜色。 This is what I'm working with.
'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
答案 0 :(得分: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。但是,这完全取决于您。
P.S。用于大量控件的控件数组可能是一个好主意。看一下这个: https://bettersolutions.com/excel/macros/vba-control-arrays.htm