VBA将循环内的过滤表复制到新工作表中

我有一个桌子,有很多列。 我想一个接一个地过滤表格中的某个特定列中出现的几个值。 一旦表格被过滤(对于一个值),我想复制结果到一个新的表格,并继续与第二个值。 (其实我想将它复制到一个新的工作簿并保存,但这是下一步。)

这是我的代码:

'Start Loop Public Sub LP() Dim years As Variant Dim number As Variant 'Array for loop years = Array("2013", "20131", "20132") For Each number In years ' filter definition (filter by number) Dim i As Integer, rngData As Range Set rngData = Range("A1").CurrentRegion i = Application.WorksheetFunction.Match("ColumnXY", Range("A1:BM1"), 0) rngData.AutoFilter field:=i, Criteria1:=number 'Copy filtered data to new sheet Dim rng As Range Dim WS As Worksheet For Each row In Range("Tabelle1[#All]").Rows If row.EntireRow.Hidden = False Then If rng Is Nothing Then Set rng = row Set rng = Union(row, rng) End If Next row Set WS = Sheets.Add rng.copy Destination:=WS.Range("A1") 'Delete specific columns in the new sheet WS.Range("A:AD,AP:AQ,AS:BE,BG:BH,BJ:BK").EntireColumn.Delete 'Autofit Column Columns("A:N").Select Range(Selection, Selection.End(xlToRight)).Select Cells.EntireColumn.AutoFit 'Tabelle1=1 active table Sheets("Tabelle1").Select 'Remove filter and show all data If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData End If 'go on with next number Next number End Sub 

3运行脚本后会生成表格,第一张表格正常(2013年的所有数据)。 第二个表包含第一个两个数字(2013和20131)的不幸所有行,第三个表包含所有数字的数据。 我的目标是个人获得一个号码的数据表,我看不到,有什么问题…

谢谢你的帮助!