此处的目标是设置工作表对象,然后将该工作表移至新工作簿并继续使用该工作表对象。但是,通过移动该工作表,似乎之前与其关联的工作表对象将丢失。Excel VBA:在保持工作表对象关联的同时将工作表移至新工作簿
测试:
假设我们有一个名为Book1.xlsb和Book2.xlsb每一个表中点名Sheet1中的同一文件夹两个Excel工作簿。当我们打开Book1时,我们放入下面的子文件,并尝试使用工作表对象从另一个工作表移动工作表。
一切都“有效”,但工作表对象在进程中丢失,并在您尝试再次使用时立即引发错误。 是否可以将工作表移动到新的工作簿中,而不会丢失工作表对象关联,以便稍后可以引用它?
Option Explicit
Sub test()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim ws As Worksheet
Set wb1 = ThisWorkbook
Set wb2 = Workbooks.Open("Book2.xlsb")
Set ws = wb2.Sheets(1)
ws.Name = "Sheet2" 'name changed to avoid conflict with the one already there
ws.Move wb1.Sheets(1)
MsgBox ws.Name 'this line throws an error, indicating that ws association has been lost
End Sub
编辑: 如果这是不可能的,我们怎么能可靠地重新设置工作表对象的一个是我们刚搬?
不,如果它在新的工作簿中,您将不得不重新创建它。但是,这很容易,因为您知道工作表的名称,并且有WorkBook对象参考。 – braX