首页 > 解决方案 > 获取从另一个页面复制的表格名称

问题描述

我制作了一个宏,它将一个表格复制到其他各个页面,然后将这些粘贴的表格排序到特定的日期范围。我的问题是知道新复制的表的表名。我试图只做一个简单的计数,但分配给列表对象的默认数字显然不是按时间顺序排列的。当我复制到第 199 个表时,下一个复制的表是 1100 而不是 200...

粘贴到工作表上的表格是该工作表上唯一的表格,因此我认为我应该能够分配名称或获取自动分配的名称。我怎么做?还是我需要以完全不同的方式复制表格?

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

标签: excelvba

解决方案


您可以使用表的索引(与任何集合一样)引用表,如果工作表上只有一个表,则识别该表会变得更简单,即:

Worksheets("nnn").listobjects(1).name

推荐阅读