在VBAmacros中使用符号#(散列)
在Excel VBA中使用#
符号的含义是什么?
它是这样使用的:
a = b /100#
我不明白100
后的意义#
Double的types声明字符是数字符号(#)。 也称为HASH
其他types的声明字符是:
- 整数 %
- 长 &
- 货币@
- 单身!
- 双#
- string$
不明白#的意义在这里。
这意味着,当评估expression式时,types声明字符前面的数字被视为特定的数据types,而不是作为Variant。
看这个例子,基本上是一样的。
Sub Sample1() Dim a# a = 1.2 Debug.Print a End Sub Sub Sample2() Dim a As Double a = 1.2 Debug.Print a End Sub
编辑
让我再详细解释一下。
考虑这两个程序
Sub Sample1() Dim a As Double, b As Integer b = 32767 a = b * 100 Debug.Print a End Sub Sub Sample2() Dim a As Double, b As Integer b = 32767 a = b * 100# Debug.Print a End Sub
问题 :其中一个会失败。 你能猜出哪一个?
Ans :第一个过程Sub Sample1()
将失败。
原因 :
在Sample2
,当您执行b * 100#
,计算结果将是Double
types。 由于它在Double的范围内,所以计算成功,结果赋给variablesa
。
现在在Sample1
,当你执行b * 100
,计算结果将是Integer
types,因为两个操作数都是整型。 但是计算的结果超出了Integer存储的限制。 结果会出错。
希望能帮助到你 :)