我希望对活动工作表/活动表进行排序。我将使用一个excel文件,它每天都在增长,每天都会有一个新的工作表/表。我期待所有的自动设置为不同的员工来做这项工作。
我发现使用ActiveSheet.ListObjects(1)会选择active表,但是排序会导致问题。
如果我使用以下格式,它将是一次排序,最终对我的员工是无用的。
Sub Test()
ActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1").Sort.SortFields.Add _
Key:=Range("Table1[[#All],[Client Name]]"), SortOn:=xlSortOnValues, Order _
:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub我试过以下几种方法,但都没有用。
Sub Test()
ActiveSheet.ListObjects(1).Sort.SortFields.Clear
ActiveSheet.ListObjects(1).Sort.SortFields.Add _
Key:=Range("ActiveSheet.ListObjects(1)[[#All],[Client Name]]"), SortOn:=xlSortOnValues, Order _
:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.ListObjects(1).Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub所有代码都返回到表的标签上。我如何修改它来使用活动的内容?
发布于 2018-02-23 12:57:13
我相信下面的代码会按照您的预期执行,主要不同的是键,我使用了ListObject的name属性来获得正确的名称:
Sub Test()
ActiveSheet.ListObjects(1).Sort.SortFields.Clear
ActiveSheet.ListObjects(1).Sort.SortFields.Add _
Key:=Range(ActiveSheet.ListObjects(1).Name & "[[#All],[Client Name]]"), SortOn:=xlSortOnValues, Order _
:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.ListObjects(1).Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Subhttps://stackoverflow.com/questions/48917656
复制相似问题