通过变量更改活动的x选项按钮的背景颜色会使它们变黑

时间:2019-03-20 15:22:08

标签: excel vba

我在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

按钮变黑,如下所示:

enter image description here

由于有很多按钮,我希望只分配一次颜色,然后只需键入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

任何建议都值得赞赏!晚上/晚上过得愉快。

1 个答案:

答案 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结果,然后可以在常量中使用。