3

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

请帮忙

谢谢。

4

1 回答 1

11

我只是在想我是否可以发布这个答案。我想你们中的一些人不会喜欢它,因为它不是通过绕过解决方案的直接回答。但是我认为我可以展示这个想法,因为我们在问题中没有所有项目假设。

让我们同意 - 我们都知道在我们更改过滤后不会触发任何事件。但是,我看到了一种选择。

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

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

第 2 步。我假设我们的数据范围从 Range(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

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

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

我希望有人会喜欢它并且可以使用它。即使这只是一个绕道的想法。

于 2013-04-09T15:36:17.800 回答