0

我对 VBA 相当陌生,并且在基本训练练习中遇到以下情况:

Select Case Me.comColour
    Case Is = "Red"
    Range("a1").Font.Color = vbRed
    Case Is = "Blue"
    Range("a1").Font.Color = vbBlue
    Case Is = "Green"
    Range("a1").Font.Color = vbGreen
End Select

现在,考虑到组合框只包含红色、绿色、蓝色这三个词,我突然想到,也许我可以通过说“评估 vb 后跟 Me.comColour”以某种方式直接调用 vb(color)

我知道我可以在 mIRC 脚本中执行此操作,以使用以下格式根据其他变量(例如,根据需要创建 %variable1、%variable2 等)定义具有不同名称的变量

 [ % $+ stuff $+ [ %variable ] ]

但我将如何在 VBA 中做到这一点?

4

1 回答 1

0

你不能以一种简单、明显的方式做到这一点。可以通过创建一个字典来完成一些事情,但我认为对于这样一个简单的代码来说,它比它的价值更麻烦。这Select Case对我来说已经足够好了。

[您可以创建一个数组并使用组合框中的索引号来选择颜色,但如果组合框项目的顺序发生变化,这会出现问题。]

Is顺便说一句,比较相等时您不需要:

Select Case Me.comColour
    Case "Red"
    Range("a1").Font.Color = vbRed
    Case "Blue"
    Range("a1").Font.Color = vbBlue
    Case "Green"
    Range("a1").Font.Color = vbGreen
End Select

您可能会认为使用起来稍微整洁一些With..End With

With Range("A1").Font
    Select Case Me.comColour
        Case "Red"
        .Color = vbRed
        Case "Blue"
        .Color = vbBlue
        Case "Green"
        .Color = vbGreen
    End Select
End With

但这是一个见仁见智的问题。

于 2013-07-12T11:57:18.437 回答