如何从MsgBox中删除变量

时间:2014-06-05 17:09:38

标签: vba variables if-statement

所以我试图做的是将一堆变量传递给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)

1 个答案:

答案 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都是字符串,但你应该根据你的情况调暗它们。

希望能让你走近!