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