例如,如果我键入Sqr(a ^ 2 + b ^ 2)
没有错误。但是当我输入Sqr(a ^ 2 + b^ 2)
它会产生一个我不明白的编译错误:
^
VBA7中的功能是什么,而不是_^
(下划线显示空间)表示幂?
例如,如果我键入Sqr(a ^ 2 + b ^ 2)
没有错误。但是当我输入Sqr(a ^ 2 + b^ 2)
它会产生一个我不明白的编译错误:
^
VBA7中的功能是什么,而不是_^
(下划线显示空间)表示幂?
这是一个 64 位的问题。
^ 可能会使编译器混淆是否使用了运算符与操作数值,因为 LongLong 正在使用。
出现此问题的原因是抑扬符 (^) 在此上下文中不明确。对于 64 位版本的 VBA,抑扬符有两种含义:
考虑以下场景:
您的计算机上安装了 64 位版本的 Microsoft Office 2010。在 Visual Basic IDE 中,您将创建一个新项目。
在 Visual Basic for Applications (VBA) 代码中,键入类似于以下内容的语句:
LongLongVar2 = LongLongVar1^IntegerVar
当您在 64 位 Office 2010 VBA 版本中键入 x^y 时,VBA IDE 编辑器不知道如何解释字符串的“x^”部分。在这种情况下,“x^”可以被视为 LongLong 数据类型。如果以这种方式解释“x^”,则字符串将产生错误,因为没有为“y”值指定适用于“x”值的运算符。如果在值名称和抑扬符之间使用空格(例如 x ^y)键入字符串,则表明您打算将符号用作运算符而不是数据类型指示符。通过这样做,您可以避免错误情况。因此,示例表达式 ... 应改写如下:
LongLongVar2 = LongLongVar1 ^ IntegerVar