根据单元格值显示VBA MsgBox弹出窗口

时间:2018-08-08 03:10:43

标签: vba msgbox

我正在尝试建立一个电子表格,以便每当输入一个单元格值时都返回一个消息框,我下面的代码仅对1个单元格有效。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim A As Range
    Set A = Range("D5")
    If Intersect(Target, A) Is Nothing Then Exit Sub
    If Target.Value = "Yes" Then
        MsgBox "Message"
    End If
End Sub

无论何时满足以下三个条件之一,我都需要弹出MsgBoxD5="Yes"B5="No"B13="Submit form",但是我无法使其弹出在给定的时间为1个以上的单元写入一个模块或3个单独的模块。这些单元格中每个单元格的每个框都应返回不同的消息,即D5 =“ Yes” MsgBox“请填写...”或B5 =“否” MsgBox“提交表单”

1 个答案:

答案 0 :(得分:0)

只需依次包含该事件中的所有测试即可。

此代码还将一次处理多个更改的单元格(即Target包含多个单元格),原始代码不会更改

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim A As Range

    Set A = Me.Range("D5")
    If Not Intersect(Target, A) Is Nothing Then
        If A = "Yes" Then
            MsgBox "Message for D5"
        End If
    End If

    Set A = Me.Range("B5")
    If Not Intersect(Target, A) Is Nothing Then
        If A = "No" Then
            MsgBox "Message for B5"
        End If
    End If

    Set A = Me.Range("B13")
    If Not Intersect(Target, A) Is Nothing Then
        If A = "Submit form" Then
            MsgBox "Message for B13"
        End If
    End If
End Sub