在VBAmacros中使用符号#(散列)

在Excel VBA中使用#符号的含义是什么?

它是这样使用的:

  a = b /100# 

我不明白100后的意义#

Double的types声明字符是数字符号(#)。 也称为HASH

其他types的声明字符是:

  1. 整数 %
  2. 长 &
  3. 货币@
  4. 单身!
  5. 双#
  6. 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# ,计算结果将是Doubletypes。 由于它在Double的范围内,所以计算成功,结果赋给variablesa

现在在Sample1 ,当你执行b * 100 ,计算结果将是Integertypes,因为两个操作数都是整型。 但是计算的结果超出了Integer存储的限制。 结果会出错。

希望能帮助到你 :)