如何在循环中插入表 - 获取运行时错误'1004'



我正在努力创建一个遍历所有工作表的循环,除了第一个选项卡 -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")

最新更新