2017-02-15 37 views
1

我想将数据从一个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

所以你的问题是:第二表格可在Excel中打开宏想再次强行打开它? – lionel

+0

问题不明确。请发展你实际需要达到的目标。 –

+0

x或y是'Sheets(“Dashboard”)? –

回答

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 
相关问题