已在此处回答的问题的第二部分 First Part Of Question
我有一个工作表,其中包含一个表,该表有一些代码可以在需要时添加列。这工作得很好(感谢本网站上的答案),但在代码中它引用了表名(在这种情况下,它是一个名为“Labour”的表)。工作表也是一个空白模板,它再次包含一些代码,用于复制整个工作表并将其粘贴到工作簿的末尾以用于下一个新任务。
我现在遇到的问题是,由于我在模板工作表上有一个表格,当工作表复制到新工作表时,表格名称会发生变化(即,如果它是 table1,则在新工作表上命名为 table2)。这反过来会停止将新列添加到新表中的代码。无论如何让代码“知道”表格上的表格并使用它吗?
我可以让表格名称出现在单元格中,有没有办法使用它?
向表中添加列的代码是:
Sub AddNewColumn()
Application.ScreenUpdating = False
Dim oSh As Worksheet
Dim oList As ListObject
Dim str As String
Set oSh = ActiveSheet
Set oList = oSh.ListObjects("Labour")
With oList
.ListColumns.Add
str = .ListColumns(1).Name
Range("Labour[[#All],[Column16]]").Select
Selection.Copy
.ListColumns(.ListColumns.Count).DataBodyRange.PasteSpecial xlPasteAll
Application.ScreenUpdating = True
End With
End Sub
如您所见,表名“Labour”在代码中
Set oList = oSh.ListObjects("Labour")
因此,在新工作表上添加新列时出现错误(因为新工作表上不存在表 Labor)。