我有一些代码在单击某些单元格时运行宏。问题是对列进行排序也会导致宏运行。如何对列进行排序时阻止此代码运行?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection.Count = 1 Then
If Not Intersect(Target, Range("AI13:AI10000")) Is Nothing Then
MsgBox "Hello World!"
End If
End If
End Sub
我很确定它无关紧要,但我的其余代码只是从一个工作簿中获取值并使用它来过滤另一个工作簿中的数据透视表。
谢谢!
答案 0 :(得分:1)
排序将触发Worksheet_SelectionChange
,因为在排序过程中选择了范围。使用Worksheet_BeforeDoubleClick
代替将在所需单元格上双击运行宏,并且不会通过排序触发事件。
以下代码对我有用:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Selection.Count = 1 Then
If Not Intersect(Target, Range("AI13:AI10000")) Is Nothing Then
MsgBox "Hello World!"
End If
End If
End Sub