我正在努力创建一个遍历所有工作表的循环,除了第一个选项卡 -Sheet1 (TOC)
.
在每张纸上,数据将从 A3 开始,并将通过 L 列。
第一个操作需要创建一个表,其数据从 A3 到 L 列开始。 但是,我收到错误代码:
"运行时错误'1004':表的工作表数据需要与表位于同一工作表上。
这是什么意思,我该如何解决?
我目前有:
Dim wb As ThisWorkbook
Dim ws As Worksheet
Dim TableName As String
Dim LstObj As ListObjects
Dim LastRow As Long
For Each ws In ThisWorkbook.Worksheets
With ws
If .Name <> "Sheet1" Then
'Insert Table
.ListObjects.Add(xlSrcRange, Range("A3").CurrentRegion, , xlYes).Name = "TableName"
'Apply a filter to $ Share for all Brands (Largest to Smallest)
.AutoFilter.Sort.SortFields.Clear
.AutoFilter.Sort.SortFields.Add2 Key:=Range("C3"), SortOn:=xlSortOnValues, Order:=xlDescending
.AutoFilter.ApplyFilter
.ListObjects(TableName).ShowAutoFilterDropDown = False
End If
End With
Next ws
问题不合格Range
调用:
Range("A3").CurrentRegion '<~ doesn't actually refer to ws
如果没有前面的.
,则存在隐式ActiveSheet
,因此表的工作表数据不在同一张纸上,即ws
,作为表。
完全限定Range
呼叫:
.Range("A3").CurrentRegion
...
Key:=.Range("C3")