例如,如果我键入Sqr(a ^ 2 + b ^ 2),就没有错误。但是,当我输入Sqr(a ^ 2 + b^ 2)时,它会产生一个编译错误,我不明白:

^在VBA7中的功能是什么,而_^ (下划线表示空间)是什么功能?
发布于 2018-07-07 08:59:06
这是一个64位问题。
在使用LongLong时,^可能会混淆编译器是否使用运算符与操作数值。
出现此问题是因为回旋字符(^)在此上下文中是不明确的。对于64位版本的VBA,“回旋”有两个含义:
考虑以下情况: 您的计算机上安装了64位版本的Microsoft 2010。在中,创建一个新项目。 在(VBA)代码中,键入类似于以下内容的语句: LongLongVar2 = LongLongVar1^IntegerVar 在64位Office 2010 VBA版本中键入x^y时,VBA编辑器不知道如何解释字符串的"x^“部分。在这种情况下,"x^“可以被视为LongLong数据类型。如果以这种方式解释"x^“,则字符串将产生错误,因为没有为"y”值应用于"x“值指定的运算符。如果通过在值名称和旋出符之间使用空格键入字符串(例如,x ^y),则指示您希望符号是运算符而不是数据类型指示符。通过这样做,您可以避免错误条件。因此,示例表达式..。应改写如下: LongLongVar2 = LongLongVar1 ^ IntegerVar
发布于 2022-08-10 16:14:51
使用^^似乎仍然存在一些冲突:
?(-1)^^2
"Compile Error: Expected: expression"但我发现,在^的括号中加上这两个术语似乎是可行的。
?(-1)^(2)
1变量也是如此:
foo = -1
bar = 2
?foo^^bar
"Compile Error: Type-declaration character does not match declared data type"
(foo)^(bar)
1https://stackoverflow.com/questions/29035672
复制相似问题