替代Worksheet_Activate

我有一个数据链接到另一个选项卡上的数据透视表的工作表。 数据更新与工作表上的切片器。 我也有代码隐藏/取消隐藏空白行在我的数据时激活工作表。 但是,我希望代码在用户更改切片器select时工作 – 我不希望他们必须离开工作表,然后再回来隐藏行。 有什么build议么?

Option Explicit Private Sub Worksheet_Activate() Dim r As Range, c As Range Set r = Range("a16:a65,a68:a118,a121:a171,a174:a224") Application.ScreenUpdating = False For Each c In r.Rows If Len(c.Cells(1).Text) + Len(c.Cells(2).Text) = 0 Then c.EntireRow.Hidden = True Else c.EntireRow.Hidden = False End If Next c Application.ScreenUpdating = True End Sub 

如何PivotTableUpdate事件? 每次更新数据透视表时,都会运行代码,这将包括切片器更改过滤的时间。

有关此事件的更多信息,请参阅此链接 。

由于切片机导致数据更新,您可以使用Worksheet_CalculateWorkbook_SheetCalculate

顺便说一句我会build议以下编码风格

 For Each c In r c.EntireRow.Hidden = Len(c.Cells(1).Text) + Len(c.Cells(2).Text) Next c