我使用此行的代码:EXCEL VBA - 声明范围当片材名称为可变
ActiveWorkbook.Worksheets(sName).ListObjects(sName).Sort.SortFields.Add Key:=
Range ("sName.Name[[#All],[Keyword]]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
现在,这条线是一个较长的功能的一部分的是应该做同样的事情对于较宽床单列表。因此,我需要改变的范围内选择:
Range ("sName.Name[[#All],[Keyword]]")
是基于一个变量,我无法找到如何做到这一点的解决方案。 **我尝试了几个选项,即兴创作,没有工作。
在此先感谢。
这是完整的代码BTW:
Sub Filter()
'Application.ScreenUpdating = False
Call Filtering("US") 'To prepare Data for All Keywords
MsgBox "Updated"
'Application.ScreenUpdating = True
End Sub
Function Filtering(sName As String)
'
' Filtering Macro
'
'
Sheets(sName).Select
ActiveWorkbook.Worksheets(sName).ListObjects(sName).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(sName).ListObjects(sName).Sort.SortFields.Add Key:=
Range ("sName.Name[[#All],[Keyword]]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(sName).ListObjects(sName).Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWorkbook.Worksheets(sName).ListObjects(sName).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(sName).ListObjects(sName).Sort.SortFields.Add Key:= _
Range("sName.Name[[#All],[Position]]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal _
With ActiveWorkbook.Worksheets(sName).ListObjects(sName).Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.ListObjects(sName).Range.AutoFilter Field:=2, Criteria1:="<=20" _
, Operator:=xlAnd
End Function
问题是你正在设置你引用一个叫做_sName.Name [[#All],[Position]] _的**命名范围**。你想要与表格分列什么?你能否提供一张“美国”表格和数据的快照,并提供代码试图实现的描述。 –
将表格名称添加到数组中并通过 – user1