vba - 排序列触发单击以运行宏...如何解决此问题?

标签 vba excel cell columnsorting

我有一些代码在单击某些单元格时运行宏。问题是对列进行排序也会导致宏运行。对列进行排序时,如何防止此代码运行?

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/

相关文章:

Excel VBA/Formula 查找包含搜索词的单元格?

vba - 如何评估具有条件表达式 vba 的字符串

java - 使用 Apache_poi 删除包含特定文本的 Excel 行

ios - 增加 UITableViewCell 分隔符的高度

string - 创建字符串元胞数组 matlab

c# - 在 Windows 窗体中获取 TableLayoutPanel 单元格的高度和宽度

Excel VBA : Application. OnTime 未正确执行

excel - 在 Outlook 中粘贴 Excel 范围

excel - 编辑超链接 Excel 2010 宏

java - 读取 Excel 文件中的值,该值是多个单元格中的单个值