Я создал макрос, который будет копировать таблицу на другие страницы, где он будет сортировать эти вставленные таблицы по определенному диапазону дат. Моя проблема заключается в знании имени таблицы только что скопированной таблицы. Я попытался просто сделать простой подсчет, но номер по умолчанию, назначенный объектам списка, очевидно, не является хронологическим. Когда я добрался до скопированной 199-й таблицы, следующая скопированная таблица была 1100 вместо 200 ...
Таблица, вставленная на лист, является единственной таблицей на этом листе, поэтому я думаю I должен иметь возможность либо назначить имя, либо получить то, что когда-либо было назначено автоматически. Как я могу это сделать? Или мне нужно скопировать таблицу совершенно другим способом?
Option Explicit
Dim DutyQueue As Worksheet
Dim MonthQueue As Worksheet
Dim tblNum As Integer
Dim tblOld As Integer
Dim intWSCount As Integer
Dim intmonth As Date
Dim endmonth As Date
Sub CopyMonthlyDutyLoop()
Set DutyQueue = ThisWorkbook.Worksheets("Duty Queue")
For intWSCount = 4 To 15
Set MonthQueue = ThisWorkbook.Worksheets(intWSCount)
tblNum = DutyQueue.Cells(1, 1)
ThisWorkbook.Worksheets(intWSCount).Activate
tblOld = MonthQueue.Cells(1, 1)
intmonth = MonthQueue.Cells(1, 2)
endmonth = MonthQueue.Cells(1, 3)
'copy table from Duty Queue
DutyQueue.Range("Table1[#All]").Copy ThisWorkbook.Worksheets(intWSCount).Range("A2")
'sort for all tasks due for the month
tblNum = tblNum + 1
Worksheets(intWSCount).ListObjects("Table_I_Just_Copied").Range.AutoFilter Field:=5, Criteria1:="<=" & intmonth, Operation:=xlAnd, Criteria2:="<=" & endmonth
DutyQueue.Cells(1, 1) = tblNum
MonthQueue = Worksheets(intWSCount).ListObjects("Table_I_Just_Copied").Name
Next intWSCount
End Sub