8

我的If情况有什么问题?

If Not IsEmpty(Wrkgps_L3) And Not IsEmpty(Wrkgps_L4) Then
    Wrkgps_L3L4 = Wrkgps_L3 & "," & Wrkgps_L4
End If

Not条件似乎不起作用。If即使两者都是空字符串Wrkgps_L3,语句中的代码也会被执行。Wrkgps_L4

更新:

Wrkgps_L3并且Wrkgps_L4是包含从函数返回的结果的变量。IsEmpty(Wrkgps_L3) = False我注意到了Wrkgps_L3 = ""。我不得不重写我的代码

If (Wrkgps_L3 <> "") And (Wrkgps_L4 <> "") Then

无论如何,我仍然很想知道为什么IsEmpty对变量不起作用""

4

2 回答 2

12

在 Visual Basic 中,Empty""(一个空字符串)是两个不同的东西。EmptyVariant变量的未初始化状态,并IsEmpty测试Variant变量是否具有Empty值:

Dim x As Variant
If IsEmpty(x) Then
    Debug.Print "x is empty"
End If

正如您所观察到的,您必须""在检查String变量是否包含空字符串时进行比较。

于 2012-04-06T21:06:09.093 回答
1

如果变量是字符串,您还可以:

If Len(Wrkgps_L3) + Len(Wrkgps_L4) = 0 Then
   ' They're both empty string variables
Else
   ' One or the other contains at least one character
End If
于 2012-04-07T17:50:33.660 回答