声明变量

要在 VBA 中显式声明变量,请使用 Dim 语句,后跟变量名称和类型。如果在未声明的情况下使用变量,或者未指定类型,则将为其分配 Variant 类型。

在模块的第一行使用 Option Explicit 语句强制在使用之前声明所有变量(请参阅始终使用 Option Explicit )。

强烈建议始终使用 Option Explicit,因为它有助于防止拼写错误/拼写错误并确保变量/对象保持其预期类型。

Option Explicit

Sub Example()
    Dim a As Integer
    a = 2
    Debug.Print a
    'Outputs: 2

    Dim b As Long
    b = a + 2
    Debug.Print b
    'Outputs: 4

    Dim c As String
    c = "Hello, world!"
    Debug.Print c
    'Outputs: Hello, world!
End Sub

可以使用逗号作为分隔符在一行上声明多个变量,但每个类型必须单独声明,否则它们将默认为 Variant 类型。

Dim Str As String, IntOne, IntTwo As Integer, Lng As Long
Debug.Print TypeName(Str)    'Output: String
Debug.Print TypeName(IntOne) 'Output: Variant <--- !!!
Debug.Print TypeName(IntTwo) 'Output: Integer
Debug.Print TypeName(Lng)    'Output: Long

变量也可以使用数据类型字符后缀($%&!#@)声明,但是越来越不鼓励使用它们。

 Dim this$  'String
 Dim this%  'Integer
 Dim this&  'Long
 Dim this!  'Single
 Dim this#  'Double
 Dim this@  'Currency

其他声明变量的方法是:

  • Static 喜欢:Static CounterVariable as Integer

当你使用 Static 语句而不是 Dim 语句时,声明的变量将在调用之间保留其值。

  • Public 喜欢:Public CounterVariable as Integer

公共变量可以在项目的任何过程中使用。如果在标准模块或类模块中声明了公共变量,那么它也可以在任何引用声明公共变量的项目的项目中使用。

  • Private 喜欢:Private CounterVariable as Integer

私有变量只能由同一模块中的过程使用。

来源和更多信息:

MSDN-声明变量

类型字符(Visual Basic)