Excel 选择/取消选择切片器时隐藏/取消隐藏行
我正在仪表板中创建一个嵌套的切片器视图,其中两个切片器将在Excel中的两个不同行中相互重叠 我想在选择Slicer1中的任何选项时,取消隐藏Slicer2所在的行。当在切片器1中再次取消选择所有选项,将其重置为显示所有数据时,我想再次隐藏切片器2所在的行 我过去曾使用宏切换来隐藏/取消隐藏行,但我找不到解决此问题的方法 编辑日期:2020年2月17日 我遇到了另一个问题。我在几个不同的选项卡上使用此代码。一个选项卡工作正常-设置为在轴更新时从模块调用宏,轴位于切片器的另一个工作表上 另一个在同一张正在更新的工作表上有轴心,而不是另一张(我不确定这是否重要)。我的设置与此相同-当pivot更新时,它调用宏。问题是切片器中有一个区域(最后一个区域)不工作。我有12个区域,当我选择其中任何一个区域(除了一个区域)时,我将取消隐藏目标行。当我清除过滤器时,它再次隐藏。但这一区域的行为就像我在清除它们一样。如果该行已隐藏,则不会发生任何事情,但如果该行已显示,则会将其隐藏。以下是当前代码:Excel 选择/取消选择切片器时隐藏/取消隐藏行,excel,vba,Excel,Vba,我正在仪表板中创建一个嵌套的切片器视图,其中两个切片器将在Excel中的两个不同行中相互重叠 我想在选择Slicer1中的任何选项时,取消隐藏Slicer2所在的行。当在切片器1中再次取消选择所有选项,将其重置为显示所有数据时,我想再次隐藏切片器2所在的行 我过去曾使用宏切换来隐藏/取消隐藏行,但我找不到解决此问题的方法 编辑日期:2020年2月17日 我遇到了另一个问题。我在几个不同的选项卡上使用此代码。一个选项卡工作正常-设置为在轴更新时从模块调用宏,轴位于切片器的另一个工作表上 另一个在同
Sub Hide_Unhide_facility2()
Application.ScreenUpdating = False
Dim cache As Excel.SlicerCache
Dim sht As Worksheet
Dim sItem As Excel.SlicerItem
Set cache = ActiveWorkbook.SlicerCaches("Slicer_Region2")
For Each sItem In cache.SlicerItems
Rows(10).Hidden = sItem.Selected
Next
Application.ScreenUpdating = True
End Sub
我可以用以下代码修复此问题:
Sub Worksheet_PivotTableUpdate _
(ByVal Target As PivotTable)
Dim cache As Excel.SlicerCache
Set cache = ActiveWorkbook.SlicerCaches("Slicer_Region1")
Dim sItem As Excel.SlicerItem
For Each sItem In cache.SlicerItems
If sItem.Selected = True Then
Rows(69).Hidden = True
End If
If sItem.Selected = False Then
Rows(69).Hidden = False
End If
Next
End Sub
希望这能帮助其他人。欢迎使用SO!请拿着这本书读一读。您应该尝试使用有用的HINR来改进代码。例如,
行
暗指ActiveSheet
和If条件已过时。只需使用行(69).Hidden=sItem.Selected
@computer即可。非常感谢您,我将代码更改为更简单的方法,效果很好。不过我还有一个问题,我正在编辑这个问题来解释。如果你对此有任何想法,我将非常感激。