Dim str as string
str & vbnullstring <> vbnullstring
str <> vbnullstring
行之间的区别是什么2 & 3?Vbnullstring连接字符串vs vbnullstring
Dim str as string
str & vbnullstring <> vbnullstring
str <> vbnullstring
行之间的区别是什么2 & 3?Vbnullstring连接字符串vs vbnullstring
任何东西& vbNullString
都会得到相同的字符串,所以这两行应该是相同的。
如果您在程序中遇到问题,您可以尝试Option Explicit
,因为&
在处理Variant
时有奇怪的行为。如果你写了类似Dim str, a As String
那么str
的类型为Variant
。
这根本不是“奇怪的行为”。不同之处在于'Variant'可以是'vbEmpty'或'vbNull','String'不能。考虑:'Dim foo As Variant:foo = vbNull&vbNullString:Debug.Print foo = vbNullString' – Comintern
@Comintern不,vbNull是常量1,vbEmpty是常量0.&不是很奇怪,但它有一个复杂的行为。基本上,它将两个变量转换为字符串并将它们连接起来,其中'Empty'和'Null'都被转换为'vbNullString'。 –
你是否在注释中运行代码?直接违背了'vbEmpty'和'vbNull'转换为'vbNullString'的断言。试试这些:'Debug.Print vbNullString&vbNullString = vbNullString'True' - 'Debug.Print vbNull&vbNullString = vbNullString'False' - 'Debug.Print vbNull = vbNullString'类型不匹配错误' – Comintern
没有。很容易测试。 –
我怀疑有人对vbNullString,vbNullChar和Null等几个完全不同的东西感到困惑。 – Bob77