此處的目標是設置工作表對象,然後將該工作表移至新工作簿並繼續使用該工作表對象。但是,通過移動該工作表,似乎之前與其關聯的工作表對象將丟失。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