use*_*440 4 excel vba excel-vba
我遇到了一条DIM声明:
Dim a() As Byte, u&, j&, s&, n&, q
Run Code Online (Sandbox Code Playgroud)
定义字节数组的第一部分足够直接,但其余部分又做了什么?为什么变量名之后的"&"?
在VBA中,如果声明Dim a, b, c as Long只将最后一个变量声明为Long,则另外两个 - a并b声明为Variant.因此,有些人在想要在一行上声明多个变量时会使用特定的快捷方式.这些快捷方式或缩写也称为类型声明后缀.
其中一个快捷方式是&将变量声明为Long.如果你不写&在最后它将被声明为Variant.
因此,您的行Dim a() As Byte, u&, j&, s&, n&, q与以下内容相同:
Dim a() As Byte, u As Long, j As Long, s As Long, n As Long, q As Variant
一般情况下,不建议使用此方法,因为您应该始终记住这些符号的用途.但是,它更短,而且有效.这是变量声明的快捷方式的摘要:
Dim iNumber% 'Integer
Dim lAverage& 'Long
Dim sngTotal! 'Single
Dim dbTotal# 'Double
Dim cProfit@ 'Currency
Dim sFirstName$ 'String
Dim llDiscount^ 'LongLong on 64 bit
Run Code Online (Sandbox Code Playgroud)
当您将其分配给Variant类型时,您还可以声明文字的类型.例如,在这种情况下10将是类型Double,因为#:
Public Sub TestMe()
Dim myVariant
myVariant = 10#
Debug.Print VarType(myVariant) = vbDouble 'returns True
End Sub
Run Code Online (Sandbox Code Playgroud)