我试图保持我的代码干净,特别是在用户表单中使用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个下拉菜单。是否有任何(可接受的/已知的)简化方法?
答案 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