我不得不更改电子表格的格式,下面提到的范围现在是一个表格。
自更改此设置后,我的宏报告“方法'排序'对象'范围'失败”。
我无法直接命名表格,因为代码循环显示电子表格中的所有工作表(排除除外),并且将添加新工作表,我将不知道表格名称/编号。
如何选择表格(位置B72:L86)并按列I排序?
For Each wsSheet In ThisWorkbook.Worksheets
Select Case wsSheet.Name
Case "Affiliates", "New Report", "Pasted Report", "New Month Or Client", "Set Up Data"
'Do nothing.
Case Else
With wsSheet
.Range("B72:L86").Sort Key1:=.Range("I72"), Order1:=xlDescending
End With
End Select
答案 0 :(得分:0)
如果每张表只有一个表,则可以使用.ListObjects(*index*)
属性来引用它。
Dim lo as ListObject
With wsSheet
For Each lo in .ListObjects
lo.Sort.SortFields.Add Key:=Range(lo.Name & _
"[[#All],[" & .Range("I72").value & "]]"), SortOn:=xlSortOnValues, Order:= xlDescending
With lo.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Next
End With