我想在 AutoFilter 脚本中用变量替换工作表和 Table 名称

I want to substitute variables for Worksheet and Table names in an AutoFilter script

在 excel 工作表上,我使用下拉列表更改项目列表旁边的列的内容。根据下拉列表选择,"X" 会出现在相应项目的旁边。

[过滤器] [项目]

[X] [项目 A]

[ ] [项目 B]

[X] [项目 C]

为了隐藏没有 "X" 的行,我使用下面的脚本自动刷新列过滤器,以便根据列表下拉选择显示和消失行。

Private Sub Worksheet_Change(ByVal Target As Range)
    With ActiveWorkbook.Worksheets("Sheet2").ListObjects("Table356")
         .AutoFilter.ApplyFilter
    End With
End Sub

这适用于绝对引用,但是,我想将工作表用作模板,并且不想在用户每次创建新文件时手动更新 Sheet 和 Table 名称工作表。

这是我之前尝试创建可变项的尝试:

Dim MyNewSheet As Worksheet
Dim MetricsList As Range

Set MyNewSheet = ActiveSheet
Set MetricsList = ActiveSheet.Range("B3:V88")

注意:最好创建一个 table 变量,而不是一系列单元格。

你能为这个脚本提供变量吗?

如果新工作表上只有一个Table,那么我们不需要ListObject[=17=的变量]

Private Sub Worksheet_Change(ByVal Target As Range)
    With ActiveSheet.ListObjects(1)
             .AutoFilter.ApplyFilter
    End With
End Sub

会成功的。