我有一些代码在单击某些单元格时运行宏。问题是对列进行排序也会导致宏运行。对列进行排序时,如何防止此代码运行?
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
我很确定这无关紧要,但我的其余代码只是用于从一个工作簿中获取值并使用它来过滤另一个工作簿中的数据透视表。
谢谢!
最佳答案
排序会触发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
关于vba - 排序列触发单击以运行宏...如何解决此问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304174/