首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在VBA中的Excel 2013的'^‘操作符之前需要一个空格,否则它会产生编译时错误“预期的列表或分隔符”

为什么在VBA中的Excel 2013的'^‘操作符之前需要一个空格,否则它会产生编译时错误“预期的列表或分隔符”
EN

Stack Overflow用户
提问于 2015-03-13 15:07:57
回答 2查看 1.9K关注 0票数 2

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

^在VBA7中的功能是什么,而_^ (下划线表示空间)是什么功能?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-07 08:59:06

这是一个64位问题。

在使用LongLong时,^可能会混淆编译器是否使用运算符与操作数值。

出现此问题是因为回旋字符(^)在此上下文中是不明确的。对于64位版本的VBA,“回旋”有两个含义:

  1. 它可以指定一个指数运算,例如x到y的幂("x^y")。
  2. 对于64位Office2010VBA版本,它可以指定操作数值应被视为64位整数值数据类型(例如,"234^")。

考虑以下情况: 您的计算机上安装了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

票数 2
EN

Stack Overflow用户

发布于 2022-08-10 16:14:51

使用^^似乎仍然存在一些冲突:

代码语言:javascript
复制
?(-1)^^2 
"Compile Error: Expected: expression"

但我发现,在^的括号中加上这两个术语似乎是可行的。

代码语言:javascript
复制
?(-1)^(2)
1

变量也是如此:

代码语言:javascript
复制
foo = -1
bar = 2
?foo^^bar
"Compile Error: Type-declaration character does not match declared data type"

(foo)^(bar)
1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29035672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档