2017-05-26 136 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 –