VBA:&和+之间的区别

Posted

技术标签:

【中文标题】VBA:&和+之间的区别【英文标题】:VBA: Difference between & and + 【发布时间】:2011-03-22 20:48:33 【问题描述】:

有什么区别:

string1 + string2

string1 & string2

它们是等价的吗?为什么有两个不同的符号做同样的事情?

【问题讨论】:

【参考方案1】:

只要操作数是字符串,表达式都是一样的;如果没有,+ 可能会根据类型转换添加它们。 & 保证除了字符串连接之外你不会得到任何东西,并且会尽可能将操作数转换为字符串。

有一个关于 Concatenation operations in Visual Basic 的 MSDN 条目对此进行了解释:

& 运算符 (Visual Basic) 仅针对 String 操作数定义,它总是将其操作数扩展为 String,而不管 Option Strict 的设置如何。建议将 & 运算符用于字符串连接,因为它是专门为字符串定义的,可以减少生成意外转换的机会。

【讨论】:

如果其中一个值为空,即使是字符串,表达式也不相同。 MSDN 文章是关于 Visual Basic 的,但我想这在 VBA 中同样适用?没有 VBA 文档页面吗?【参考方案2】:

这两个表达式是等价的,但运算符不是。 + 可以用作算术运算符以及字符串连接,& 只能用于后者。

【讨论】:

他们有不同的行为,参见+ operator vs. & operator。 考虑使用 + 与字符串连接的空值

以上是关于VBA:&和+之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

VBA中字符串连接/字符串拼接中“&”和“+”的区别

在Access VBA中,GroupLevel和Section对象之间的区别是什么?

VBA中两个二维数组之间的区别

vba inputBox:如何用空文本框区分“取消”和“确定”之间的区别

如何确定在 Access VBA 中键入组合框和从下拉列表中选择之间的区别?

VBA中ByVal和 ByRef有啥区别?