案例陈述中的VBA变量范围

时间:2015-03-26 18:17:16

标签: vba excel-vba scope case-statement excel

想知道在Case语句中使用变量的方式。看起来它们是在第一个案例中宣布的,无论该案例是否相关。

'The following code will throw an error

Select Case team
    Case "Philadelphia Eagles"
        dim record as String
    Case "Dallas Cowboys"
        dim record as String
End Select

即使'团队'不是费城老鹰队,它声称我已经宣布变量'记录'

我的印象是,如果案件不相关,案件陈述中的任何内容都会完全被忽略。

'The following code works

Select Case team
    Case "Philadelphia Eagles"
        dim record as String
    Case "Dallas Cowboys"
        record = "8-8"
End Select

只是想确认我在这里正确理解了Case语句。

谢谢!

约什

1 个答案:

答案 0 :(得分:2)

变量声明(Dim语句)在程序执行开始时得到解决,这就是为什么在您的示例中没有“跳过”Dim record语句的原因。

您应该在启动子例程或函数之后将变量声明放在代码顶部一次。您不能在同一个变量上使用Dim两次。如果变量是需要调整大小的数组,则可以改为使用ReDim [Preserve]

Sub Subname()
    Dim record as String

    Select Case team
        Case "Philadelphia Eagles"
            record = "16-0"
        Case "Dallas Cowboys"
            record = "8-8"
    End Select

End Sub