2017-05-26 137 views
1

我想知道是否有人可以幫我把下面的內容變成一個味精盒。基本上我希望它首先檢查下面的範圍是否說檢查,如果他們做了一個msgbox將出現解釋哪個規則已被違反。我曾嘗試創建變量,但不確定如何在msgbox中實現此變量。自動填充MsgBox

Sub ErrorMsgBox() 

Dim Error1 As String 
    If Range("DaisyFreshRule").Value = "CHECK" Then 
    Error1 = "Daisy Fresh Rule" 
Else 
End If 

Dim Error2 As String 
    If Range("MigrationRule").Value = "CHECK" Then 
    Error2 = "Migration Rule" 
Else 
End If 

Dim Error3 As String 
    If Range("ServiceCreditRule").Value = "CHECK" Then 
    Error3 = "Service Credit Rule" 
Else 
End If 

End Sub 

回答

6
Sub ErrorMsgBox() 

    Dim Error As String: Error="" 

    If Range("DaisyFreshRule").Value = "CHECK" Then 
    Error = vbNewLine & "Daisy Fresh Rule" 
    End If 

    If Range("MigrationRule").Value = "CHECK" Then 
    Error = Error & vbNewLine & "Migration Rule" 
    End If 

    If Range("ServiceCreditRule").Value = "CHECK" Then 
    Error = Error & vbNewLine & "Service Credit Rule" 
    End If 

    If Error <> "" Then 
    MsgBox "The following checks have been detected:" & Error 
    End If 

End Sub 
+0

++哈!你打我:D –

+0

我不認爲'\ n'將評估一個新行vba – Tom

+0

是的,它已被改爲vbLf。謝謝@湯姆 – Amorpheuses

3

試試這個

Sub ErrorMsgBox() 
    Dim Err As String 

    If UCase(Range("DaisyFreshRule").Value) = "CHECK" Then Err = Err & "Daisy Fresh Rule" & vbNewLine 
    If UCase(Range("MigrationRule").Value) = "CHECK" Then Err = Err & "Migration Rule" & vbNewLine 
    If UCase(Range("ServiceCreditRule").Value) = "CHECK" Then Err = Err & "Service Credit Rule" & vbNewLine 

    If Not Err = vbNullString Then MsgBox prompt:=Err, Buttons:=vbCritical 
End Sub 
+0

如果沒有錯誤,你仍然會得到一個MsgBox :) –

+0

好一點。星期五下午大腦 – Tom

+0

++不錯:)對我來說,時間幾乎要碰到麻煩了:D –