VBA:打开xls文件并将其添加到当前工作簿

时间:2010-09-07 10:43:57

标签: excel file vba copy

我遇到这个问题。我有一个xls文件,其中包含一张数据。在我的主应用程序,一个不同的工作簿,我想打开这个单张xls文件并将工作表复制到当前工作簿。

如果我选择要复制的源文件的范围,我可以这样做但是这个单个文件可能会改变,所以我宁愿想出一个只复制整个文件的解决方案。这是我一直在使用的一些代码:

Set src = Workbooks.Open(Filename:="thefile.xlsx")

Range("F4:F67").Copy
ThisWorkbook.Activate
Sheets("Result").Activate
Range("A1").Select
ActiveSheet.Paste

我很感激任何帮助。

由于

2 个答案:

答案 0 :(得分:4)

这是一个不需要的简单解决方案。选择或.Activate。

Sub getSheetFromA()
    getSheet "a.xls", 1
End Sub

Sub getSheet(filename As String, sheetNr As Integer)
    Dim srcWorkbook As Workbook

    Set srcWorkbook = Application.Workbooks.Open(filename)
    srcWorkbook.Worksheets(sheetNr).Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

    srcWorkbook.Close
    Set srcWorkbook = Nothing
End Sub

答案 1 :(得分:2)

我找到了解决方案:

Set src = Workbooks.Open(Filename:="file.xlsx")
Cells.Copy

ThisWorkbook.Activate
Sheets("Result").Activate
Range("A1").Select
ActiveSheet.Paste