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:&和+之间的区别的主要内容,如果未能解决你的问题,请参考以下文章
在Access VBA中,GroupLevel和Section对象之间的区别是什么?
vba inputBox:如何用空文本框区分“取消”和“确定”之间的区别