所以我有两个excel工作簿-工作簿A用作用户窗体,工作簿B用作包含所有数据条目的数据库(B是合并文件)。每当我打开工作簿A时,我都希望自动从工作簿B中提取所有数据,并将其复制到单独工作表中的工作簿A中。这样,我可以实现其他一些功能,例如检索先前的条目。
所以我使用了工作簿中嵌入的以下鳕鱼:
Public Sub Workbook_open()
Call get_AllUpdateEntries
End Sub
Sub get_AllUpdateEntries()
Dim oriWorkbook As Workbook
Dim destWorkbook As Workbook
Set oriWorkbook = Workbooks.Open("FilePath")
Set destWorkbook = ThisWorkbook
oriWorkbook.Worksheets("Sheet Name").Copy
destWorkbook.Worksheets("Sheet Name").Paste
x.Close SaveChanges:=False
End Sub
但是,我无法运行此宏。它不会按我的要求复制工作表,此外,还会打开另一个不需要的工作簿。
答案 0 :(得分:2)
将工作表复制到任何位置时,它将创建一个具有单个工作表(原始副本)的新活动工作簿。
为复制的工作表提供直接的目的地。
Sub get_AllUpdateEntries()
Dim oriWorkbook As Workbook
Dim destWorkbook As Workbook
Set oriWorkbook = Workbooks.Open("FilePath")
Set destWorkbook = ThisWorkbook
'remove the destination worksheet if it already exists
on error resume next
application.displayalerts = false
destWorkbook.worksheets("All Update Entries").delete
application.displayalerts = true
on error goto 0
'copy worksheet to the end of the worksheet queue in ThisWorkbook
oriWorkbook.Worksheets("Sheet Name").Copy _
After:=destWorkbook.Sheets(destWorkbook.Sheets.count)
oriWorkbook.Close SaveChanges:=False
'rename the transferred worksheet
destWorkbook.Sheets(destWorkbook.Sheets.count).name = "All Update Entries"
End Sub