从其他工作表复制数据到当前打开的工作表?

我试图将数据从一个Excel复制到另一个,然后刷新所有透视表中的表格。 面临的问题在这里下面的macros告诉我打开表总是我需要复制我的数据。 请帮助我,因为我不想再次打开我的第二个文件。

Sub UReport() ' ' UReport Macro ' ' Keyboard Shortcut: Ctrl+Shift+T ' Dim x As Workbook Dim y As Workbook '## Open both workbooks first: Set x = Workbooks.Open("C:\Reports\HC Report.xlsx") Set y = Workbooks.Open("C:\Reports\Main Tracker.xlsx") 'Now, copy what you want from x: x.Sheets("HC Report").Range("A2:FI7004").Copy 'Now, paste to y worksheet: y.Sheets("My Data").Range("A2:FI7004").PasteSpecial Sheets("Dashboard").Select ActiveWorkbook.RefreshAll Sheets("My Data").Select 'Close x: x.Close End Sub 

 Sheets("Dashboard").Select ActiveWorkbook.RefreshAll Sheets("My Data").Select 

这是不明确的。 ActiveWorkbooky 。 如果工作表“仪表板”在y中不存在,那么您将有错误。 如果是这个问题,那么使用:

 x.Sheets("Dashboard").Select 

就像你以前用其他床单一样!

顺便说一句,如果你不想任何屏幕更新,因为文件打开可能会很长(也可能导致错误),请使用

 Application.ScreenUpdating = false 'at the beginning of sub ' code here Application.ScreenUpdating = true ' at the end of sub