Vba 如何简化许多“If-Then-Else”查询?
你能给我一个如何使这样的代码更优雅的提示吗 我需要更多的这些问题在未来,我想做的更专业 谢谢大家!Vba 如何简化许多“If-Then-Else”查询?,vba,if-statement,Vba,If Statement,你能给我一个如何使这样的代码更优雅的提示吗 我需要更多的这些问题在未来,我想做的更专业 谢谢大家! If Case = "V" Then Case Is = "Sal" Else If Case = "K" Then Case Is = "Dep" Else If Case = "A" Then
If Case = "V" Then
Case Is = "Sal"
Else
If Case = "K" Then
Case Is = "Dep"
Else
If Case = "A" Then
Case Is = "Auf"
Else
If Case = "M" Then
Case Is = "Mon"
Else
If Case = "T" Then
Case Is = "Tec"
Else
If Case = "W" Then
Case Is = "Ver"
Else
If Case = "B" Then
Case Is = "Ber"
Else
If Case = "P" Then
Case Is = "Ver"
Else
GoTo GoNext
End If
End If
End If
End If
End If
End If
End If
End If
那么以下内容呢:
If Case = "V" Then
ElseIf Case = "K" Then
ElseIf Case = "A" Then
...
End If
用例选择
使用选择案例。。。结束选择
但是你需要声明一个变量,让我们假设x是引用
Dim x as String, y as String
'Allocate value to the `x` variable. In any way. Then:
Select Case x
Case "V": y = "Sal"
Case "K": y = "Dep"
Case "A": y = "Auf"
' and so on...
Case Else: y = "Whatever..."
End Select
最后,根据x one获得y值…与往常一样,多个ifs被简化为一个字典/哈希表/对象
Dim variablename
Set variablename = CreateObject("Scripting.Dictionary")
variablename.Add ("V", "Sal")
variablename.Add ("K", "Dep")
....
variablename.Add ("P", "Var")
按如下方式获取变量
ans = 'Nothing'
if variablename.exists("P") then
ans = variablename("P")
Rem ans = variablename.item("P") ?
Rem Equals "Var"
end if
另见
ans = 'Nothing'
if variablename.exists("P") then
ans = variablename("P")
Rem ans = variablename.item("P") ?
Rem Equals "Var"
end if