我正在尝试将数据从一个Excel复制到另一个Excel,然后刷新打开的工作表中的所有数据透视表。面对这里的问题下面的宏告诉我打开工作表总是我需要复制我的数据。请帮助我,因为我不想再打开我的第二个档案。
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
答案 0 :(得分:0)
Sheets("Dashboard").Select
ActiveWorkbook.RefreshAll
Sheets("My Data").Select
这是含糊不清的。 ActiveWorkbook
为y
。如果表"仪表板"在y
中不存在,那么您将出错。如果出现此问题,请使用:
x.Sheets("Dashboard").Select
就像你之前使用其他表格一样!
顺便说一句,如果您不想更新任何屏幕,因为文件打开时间可能很长(并可能导致错误),请使用
Application.ScreenUpdating = false 'at the beginning of sub
' code here
Application.ScreenUpdating = true ' at the end of sub