我正在尝试建立一个电子表格,以便每当输入一个单元格值时都返回一个消息框,我下面的代码仅对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
无论何时满足以下三个条件之一,我都需要弹出MsgBox
:D5="Yes"
,B5="No"
和B13="Submit form"
,但是我无法使其弹出在给定的时间为1个以上的单元写入一个模块或3个单独的模块。这些单元格中每个单元格的每个框都应返回不同的消息,即D5 =“ Yes” MsgBox“请填写...”或B5 =“否” MsgBox“提交表单”
答案 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