所以我试图做的是将一堆变量传递给If ... then语句。如果变量返回true,则它得到""这是在代码的另一部分中使用的。如果返回false,则将在消息框中打印不同的值。
这就是问题所在。有多个变量,当每个变量都打印在消息框中时,它们由行分隔。如果一个变量(比如C)返回true,它将只是消息框中的空白间隔符,其余部分说出来。基本上,我试图删除变量并将其放入消息框中。我怎么能这样做呢?
Set cellD = Selection.Find(What:="7/27/2013")
If cellD Is Nothing Then
D = "7/27/2013, "
Else:
D = ""
End If
If A = "" And B = "" And C = "" And D = "" Then
MsgBox (Pass)
Else:
If A = "" Then Set A = Nothing
MsgBox ("Missing:" & vbNewLine & A & vbNewLine & B & vbNewLine & C & vbNewLine & D)
答案 0 :(得分:1)
这是一种方式:
Sub test()
Dim output As String
Dim A As String
Dim B As String
Dim C As String
Dim D As String
If A <> "" Then output = A
If B <> "" Then
If output = "" Then
output = B
Else
output = output & vbNewLine & B
End If
End If
If C <> "" Then
If output = "" Then
output = C
Else
output = output & vbNewLine & C
End If
End If
If D <> "" Then
If output = "" Then
output = D
Else
output = output & vbNewLine & D
End If
End If
If output <> "" Then
MsgBox ("Missing: " & output)
Else
MsgBox ("Pass")
End If
End Sub
还有其他方法,但我认为这是一个开始的好地方(假设您的VBA技能水平)。我假设A,B和C都是字符串,但你应该根据你的情况调暗它们。
希望能让你走近!