我尝试在 Worksheet_Change
中对 Intersect
使用两种选择,但下面的代码不起作用。当我运行宏时没有任何反应,即使我使用 Not Intersect Is Nothing
,它仍然不起作用。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Target, Range("A3:A100")) Then
MsgBox "column A" & Target.Value
End If
If Intersect(Target, Range("B3:B100")) Then
MsgBox "column B" & Target.Value
End If
End Sub
最佳答案
1. 将 If Target.Cells.Count > 1 then Exit Sub
更改为 If Target.Cells.CountLarge > 1 then Exit Sub
。 Explanation
2. 将 If Intersect(Target, Range("A3:A100")) then
更改为 If Not Intersect(Target, Range("A3: A100")) 那什么都不是
3.删除第一个End If
4. 将 If Intersect(Target, Range("B3:B100")) then
更改为 ElseIf Not Intersect(Target, Range("B3: B100")) 那什么都不是
5. 您可能需要在列名称后添加空格或分隔符,否则结果将与列字母连接起来。例如,将 MsgBox "column A"& Target.Value
更改为 MsgBox "Column A : "& Target.Value
所以你的代码现在变成了
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.CountLarge > 1 Then Exit Sub
If Not Intersect(Target, Range("A3:A100")) Is Nothing Then
MsgBox "Column A : " & Target.Value
ElseIf Not Intersect(Target, Range("B3:B100")) Is Nothing Then
MsgBox "Column B : " & Target.Value
End If
End Sub
关于excel - 工作表更改两个选择相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74713136/