如何在vba中检查字符串变量是否为空?
如果:
Dim StrFile1 As String, StrFile2 As String
Dim Text3 As String
Dim Len1 as Integer, Len2 As Integer
With NewMail
Text3 = Cells(i, 3).Value
StrPath = Cells(i, 2).Value & Text3
Text = Cells(i, 1).Value
.Subject =
' adds the data in column3 with space as subject
.From =
.To = Text
.BCC = ""
.TextBody =
StrFile1 = Dir(StrPath & "*.txt")
Len1 = Len(StrFile1)
Do While Len(StrFile1) > 0
.AddAttachment StrPath & StrFile1
StrFile1 = Dir
Loop
StrFile2 = Dir(StrPath & "*.pdf")
Len2 = Len(StrFile2)
Do While Len(StrFile2) > 0
.AddAttachment StrPath & StrFile2
StrFile2 = Dir
Loop
If (Len1 & Len2) = 0 Then
GoTo Last
'.AddAttachment Text3
.Send
End With
i = i + 1
Loop
Last:
End With
i = i + 1
Loop
现在我想同时检查Len1和Len2是否为0,如果是,那么我想去Last。
当我使用此代码时,我收到一条消息/编译错误“想要以不与之结束” 和 我不确定是否
If (Len1 & Len2) = 0 Then
GoTo Last
这是一个正确的代码。 和我是否需要声明标签Last ??
答案 0 :(得分:4)
你有很多方法可以做到这一点,如下所示:
Dim StrFiles As String
StrFiles = Trim(StrFile1 & StrFile2)
If IsEmpty(StrFiles) Then
If StrFiles = vbNullString Then
If StrFiles = "" Then
If StrFiles = Empty Then
If Len(StrFiles) = 0 Then
您可以使用+ operator
检查2个字符串是否为对您的代码的空引用,因为Len Function
返回一个包含字符串中字符数的整数
If (Len1 + Len2) = 0 Then
答案 1 :(得分:2)
您可以使用Trim(strFile1 & vbNullString) = vbNullString
检查字符串是否为空。
所以:
If Trim(strFile1 & vbNullString) = vbNullString Then
Debug.print "Empty String!"
End If
答案 2 :(得分:0)
is.empty
对于VBA不存在,但第二种选择有效。
或者,你可以写:
(strFile1 & strFile2) = vbNullString
或
(strFile1 & strFile2) = ""
答案 3 :(得分:0)
另一种方式是:
If Len(strFile1 & strFile2) > 0 Then
我做了测试以确保未设置的字符串返回长度为0,这似乎就是这种情况。