2010-09-07 82 views
2

我遇到了這個問題。我有一個包含單個數據表的xls文件。在我的主應用程序中,有一個不同的工作簿,我想打開此單張xls文件並將該工作表複製到當前工作簿中。VBA:打開一個xls文件並將其添加到當前工作簿

我可以做到這一點,如果我選擇源文件的範圍來複制,但這個單一的文件可能會改變,所以我寧願拿出一個解決方案,只是複製整個文件。這是我一直在使用的一些代碼:

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

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

我很感激任何幫助。

感謝

回答

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 
+0

感謝你 – Ian 2010-09-07 12:51:34

+0

也許添加驅動器和目錄變量'子getSheet(驅動爲字符串,Directory作爲字符串,文件名作爲字符串,如sheetNr整數)Chdrive驅動CHDIR目錄....' – 2015-11-03 11:25:20

2

我找到了一個解決方案:

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

ThisWorkbook.Activate 
Sheets("Result").Activate 
Range("A1").Select 
ActiveSheet.Paste 
相關問題