我使用这行代码:
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
答案 0 :(得分:0)
要回答您的问题,此任务非常简单。首先,我想指出(主要是针对具有类似问题的未来编码人员)你试图调用的方法需要一个字符串参数,而你就很接近了。
' String argument, but "sName" is never interpreted. It is taken literally.
Range ("sName[[#All],[Keyword]]")
' Returns the string representation of sName and concatenates it into
' the rest of the string argument. If sName was Foo', this would read as:
' Range ("Foo[[#All],[Keyword]]")
Range (sName & "[[#All],[Keyword]]")
现在,为了对您的代码进行更大的观察,我强烈建议您找到有关改进整体代码的资源。对“ActiveWorkbook”的引用可能存在风险,您必然会遇到运行时错误。 “选择”语句会产生相同的风险。我知道您可能通过宏录制器学习(正如我们所做的那样),但请确保在实际发布该项目之前学习如何避免选择和激活。