消除多个Elseif语句

时间:2014-04-16 20:50:46

标签: excel vba excel-vba if-statement combobox

我试图保持我的代码干净,特别是在用户表单中使用Comboboxes,如果有Elseif语句,可能会有很多。应该有一种更容易的方法,只有一个组合框就有多页代码吗?

现在如何完成的示例:

Sub Example()
Dim Variable as String
If Combobox1.Value = "Option1" Then
        Variable = "Name1"
    Elseif Combobox1.Value = "Option2" Then
        Variable = "Name2"
    Elseif Combobox1.Value = "Option3" Then
        Variable = "Name3" 
    Elseif Combobox1.Value = "Option4" Then
        Variable = "Name4"
    Else Variable = "Name5"
End if
End Sub

你可以想象这可以成为20个名字的长代码,想象有3-4个下拉菜单。是否有任何(可接受的/已知的)简化方法?

1 个答案:

答案 0 :(得分:1)

我会用这样的东西:

Sub Example()
    Dim arr, res
    Dim Variable as String

    arr = Array(Array("Option1", "Name1"), _
                Array("Option2", "Name2"), _
                Array("Option3", "Name3"), _
                Array("Option4", "Name4"))

    res = Application.VLookup(Combobox1.Value, arr, 2, 0)
    If Not IsError(res) Then
        Variable = res
    Else
        Variable = "Name5"
    End If
End Sub