我看到了一个DIM语句:
Dim a() As Byte, u&, j&, s&, n&, q
第一部分定义了一个字节数组,这很简单易懂,但剩下的部分是干嘛用的?变量名后面的"&"是为什么?
Dim a, b, c as Long
,只有最后一个变量c
被声明为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
当你将一个文本赋值给Variant类型时,你可以声明它的类型。例如,在这种情况下,10
的类型是 Double
,因为有 #
标记。
Public Sub TestMe()
Dim myVariant
myVariant = 10#
Debug.Print VarType(myVariant) = vbDouble 'returns True
End Sub
还有一种类型@Vityata没有提到 - Decimal
,但是你不能直接声明这种类型(实际上,甚至没有关键字来表示这种类型)。要拥有Decimal
类型,您需要执行以下操作:
Dim d As Variant
d = CDec(10.55)
'Check:
MsgBox TypeName(d) 'Shows "Decimal"