我想在 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
会成功的。
在 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
会成功的。