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

时间:2017-02-15 13:25:08

标签: excel vba excel-vba

我正在尝试将数据从一个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

1 个答案:

答案 0 :(得分:0)

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