VBA:在列过滤器上触发宏

use*_*293 3 excel vba excel-vba

有没有办法可以在excel中的列过滤器上触发宏功能?

请帮忙

谢谢.

Kaz*_*wor 11

我只是想我是否可以发布这个答案.我想有些人不会喜欢它,因为通过旁路解决方案的介绍不是直接回答.但是我认为我可以表明这个想法,因为我们在问题中没有所有的项目假设.

让我们同意 - 我们都知道在更改过滤后没有事件会发生.但是,我看到一个选项.

更改过滤器可能会触发Worksheet_Calculate事件(不是Worksheet_Change).如果您的工作表中有任何单个公式,那么每次我们使用鼠标更改过滤条件时,我们都会触发该事件.

步骤1.将任何单个公式放入工作表中,例如在单元格ZZ1中,其中= ZZ2

步骤2.我假设我们的数据范围从范围(A1)开始,我们在第一行中有标题(见图).我假设那个区域下面也没有任何东西.

在此输入图像描述

步骤3.将以下解决方案放在Sheet1模块中.

Private Sub Worksheet_Calculate()

If ActiveSheet.Name = "Sheet1" Then
    If Cells(Rows.Count, 1).End(xlUp).Row = 1 Then
        MsgBox "No data available"
    Else
        MsgBox "There are filtering results"
    End If
End If
End Sub
Run Code Online (Sandbox Code Playgroud)

步骤4.使用过滤器将触发该事件并导致以下情况:

在此输入图像描述在此输入图像描述

我希望有人会喜欢它并且可以使用它.即使它只是一个旁路的想法.