我在excel中有一些奇怪的行为(因为我不理解)。
我有很多optionbuttons
要更改其背景颜色。总共有15种按钮和3种(可能是4种)颜色。
如果我只给他们分配RGB代码本身,这将非常有效。
Private Sub OptionButton1_Click()
OptionButton1.BackColor = RGB(0, 150, 79) 'Dark Green
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=4
End Sub
但是,当我尝试创建包含如下RGB代码的变量时:
Private Sub OptionButton1_Click()
OptionButton1.BackColor = DGn 'Dark Green
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=4
End Sub
按钮变黑,如下所示:
由于有很多按钮,我希望只分配一次颜色,然后只需键入DGn或Ylw,而不必不断按CTRL-C,CTRL-V
代码在ThisWorkbook
Dim DGn As Long
Dim LGn As Long
Dim Ylw As Long
Public Sub Workbook_Open()
DGn = RGB(0, 150, 79)
LGn = RGB(138, 201, 49)
Ylw = RGB(249, 234, 5)
End Sub
任何建议都值得赞赏!晚上/晚上过得愉快。
答案 0 :(得分:3)
在常规模块的顶部:
Public Const DGn As Long = 5215744 'RGB(0, 150, 79)
Public Const LGn As Long = 3262858 'RGB(138, 201, 49)
Public Const Ylw As Long = 387833 'RGB(249, 234, 5)
您不能直接在常量中使用RGB()
,因为需要在编译时知道常量的值,并且RBG()
直到 runtime才执行。
要转换值,请转到VB编辑器中的立即窗格,然后键入(例如)? RGB(138, 201, 49)
,然后按Enter键-您将得到Long结果,然后可以在常量中使用。