我遇到这个问题。我有一个xls文件,其中包含一张数据。在我的主应用程序,一个不同的工作簿,我想打开这个单张xls文件并将工作表复制到当前工作簿。
如果我选择要复制的源文件的范围,我可以这样做但是这个单个文件可能会改变,所以我宁愿想出一个只复制整个文件的解决方案。这是我一直在使用的一些代码:
Set src = Workbooks.Open(Filename:="thefile.xlsx")
Range("F4:F67").Copy
ThisWorkbook.Activate
Sheets("Result").Activate
Range("A1").Select
ActiveSheet.Paste
我很感激任何帮助。
由于
答案 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