范围已经转向一个表,macros将不会运行

我不得不改变电子表格的格式,下面提到的范围现在是一个表格。

由于改变这个,我的macros报告“方法”sorting“的对象'范围'失败”。

我不能直接为表格命名,因为代码在电子表格中的所有表格中循环(除了排除),并且将添加新的表格,以便我不知道表格名称/编号。

如何select表(位置B72:L86)并按列I对其进行sorting?

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 

如果每个工作表只有一个表,则可以使用.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