Excel 2017. 7 个工作表,1 个过滤器来改变它们

Excel 2017. 7 worksheets, 1 filter to change them all

我有 7 个作品sheet完全符合我的要求。我现在被要求提供一个过滤器来显示特定年份。完毕。但是要查看一年的趋势数据,我必须手动筛选每个 sheet。

我不介意多走一步,如果可能的话,在其中一个 sheet 中设置一个过滤器,以在所有其他 sheet 中组织年份。

我最大的sheet有=YEAR(O9:O29148)。 A8:O8 以上所有内容在每个 sheet 上完全相同,每个 sheet 在同一列中具有相同类型的数据。唯一改变的是唯一数据本身。

我想要的是在我的仪表板上有一个年份过滤器 (2000-2018),然后它将过滤所有工作sheet以显示同一年,或者如果需要,可以显示所有数据。

这可能吗?

(我不理解 VBA 代码,但我可以将其插入 VBA 编辑器,然后 运行 表示宏)。

任何帮助将不胜感激,谢谢!

我不太了解您的数据设置方式,我构建了以下代码,在仪表板 worksheet_change 事件上使用此代码 sheet,其中我有 E6 控制年。我有 3 个其他 sheets,A 列中的数据带有年份数字,您可以将其用作基础。您将需要在最有可能的过滤器上试验您的列。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim wsWorksheet As Excel.Worksheet

If Target.Cells(1, 1).Address(False, False) = "E6" and Target.Cells.Count=1 Then

    For Each wsWorksheet In ThisWorkbook.Worksheets
        With wsWorksheet
        If .Name <> Target.Worksheet.Name Then
            If .UsedRange.AutoFilter Then
                .UsedRange.AutoFilter 1, Target.Value
            End If
        End If
        End With
    Next wsWorksheet

End If

End Sub
Public Sub Filter_Sheets()

Dim i As Long
Dim comboBox As ControlFormat

With ThisWorkbook
    Set comboBox = .Worksheets(9).Shapes("Drop Down 229").ControlFormat
    For i = 1 To Worksheets.Count
        .Worksheets(i).UsedRange.AutoFilter Field:=15, Criteria1:=comboBox.List(comboBox.ListIndex)
    Next
End With

结束子

这是我设法发现的最合适的。我仍然收到错误消息(Range class 的 AutoFilter 方法失败)。然而,这确实有效。我现在使用组合框根据需要更改所有 7 张纸上的自动过滤器。为了返回 select 全部,在下拉列表引用的单元格中包含“<>”,再次处理 select 所有数据。