2016-07-22 64 views
1
Dim str as string 
str & vbnullstring <> vbnullstring 
str <> vbnullstring 

行之间的区别是什么2 & 3?Vbnullstring连接字符串vs vbnullstring

+0

没有。很容易测试。 –

+0

我怀疑有人对vbNullString,vbNullChar和Null等几个完全不同的东西感到困惑。 – Bob77

回答

1

任何东西& vbNullString都会得到相同的字符串,所以这两行应该是相同的。

如果您在程序中遇到问题,您可以尝试Option Explicit,因为&在处理Variant时有奇怪的行为。如果你写了类似Dim str, a As String那么str的类型为Variant

+2

这根本不是“奇怪的行为”。不同之处在于'Variant'可以是'vbEmpty'或'vbNull','String'不能。考虑:'Dim foo As Variant:foo = vbNull&vbNullString:Debug.Print foo = vbNullString' – Comintern

+0

@Comintern不,vbNull是常量1,vbEmpty是常量0.&不是很奇怪,但它有一个复杂的行为。基本上,它将两个变量转换为字符串并将它们连接起来,其中'Empty'和'Null'都被转换为'vbNullString'。 –

+1

你是否在注释中运行代码?直接违背了'vbEmpty'和'vbNull'转换为'vbNullString'的断言。试试这些:'Debug.Print vbNullString&vbNullString = vbNullString'True' - 'Debug.Print vbNull&vbNullString = vbNullString'False' - 'Debug.Print vbNull = vbNullString'类型不匹配错误' – Comintern