在 VBA 中连接字符串
我正在维护一个使用 VBA 用 Microsoft Access 编写的应用程序。
我浏览了一下我的代码,刚刚注意到我下意识地使用加号 (+) 而不是与符号将字符串连接在一起。我已经有几年没有用 VB6 编写代码了。这会导致任何问题吗?
一切看起来都很好,只需要几分钟就能修复,我只是好奇我在技术上是否做错了什么。
I'm maintaining an application written in Microsoft Access with VBA.
I'm glancing over my code and have just noticed I have subconsciously been concatenating strings together with the plus (+) symbol instead of the ampersand. It's been a few years since I've coded in VB6. Could this cause any issues?
Everything seems fine and it will only take a few minutes to fix, I'm just curious as to whether I'm technically doing anything wrong.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
& 符号明确是一个字符串操作,而加号是重载的:
当与数字一起使用时,加号将相加。
The ampersand is explicitly a string operation, while the plus is overloaded:
When used with numbers the plus sign will add.
来自 VBA 立即窗口的一些示例(第三个和第四个之间的差异特别令人烦恼):
Some examples, from the VBA immediate window (the difference between the third and fourth is particularly vexing):
这可能会导致问题。
如果您使用加号或与号来连接字符串值,则结果是相同的
如果您使用加号将字符串与非字符串值连接,它将抛出错误
如果您使用与号vba将尝试“字符串化”之前的值连接。
因此
string_value + int_value + date_value
将出错并且string_value & int_value & date_value
工作正常This can cause issues.
If you use the plus or ampersand to concatenate string values the results are identical
If you use a plus to concatenate a string with a non string value it will throw an error
If you use an ampersand sign vba will try to 'stringify' the values before concatenating.
So
string_value + int_value + date_value
will error andstring_value & int_value & date_value
works fine