这里的目标是设置一个工作表对象,然后将该工作表移动到新的工作簿并继续使用该工作表对象。但是,通过移动该工作表,似乎先前与其相关联的工作表对象丢失了。
去测试:
假设我们在同一文件夹中有两个Excel工作簿,分别名为Book1.xlsb和Book2.xlsb,每个工作簿中都有一个名为Sheet1的工作表。当我们打开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
编辑:如果这不可能,我们如何可靠地将该工作表对象重新设置为我们刚刚移动的那个对象?
在你的代码中
ws.Move wb1.Sheets(1)
您已经将表格ws移到Book2.xlsb文件的第一张表格中
“ Sheets(1)”表示文件的第一张纸
因此,您可以像这样重置ws。
Set ws = wb1.Sheets(1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句