2017-02-15 4 views
1

Ich versuche, Daten von einem Excel zu einem anderen zu kopieren und dann alle Pivot-Tabellen im offenen Blatt zu aktualisieren. Englisch: www.mjfriendship.de/en/index.php?op...39&Itemid=32 Das Problem ist, dass unten das Makro sagt mir, das Blatt immer dort zu öffnen, wo ich meine Daten kopieren muss Bitte hilf mir, da ich meine zweite Datei nicht wieder öffnen möchte. Daten von anderem Blatt in aktuelles offenes Blatt kopieren?

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

So ist Ihr Problem: die zweite Tabelle in Excel geöffnet werden kann und das Makro will es gewaltsam wieder öffnen? – lionel

+0

Problem ist nicht klar. Bitte entwickeln Sie, was Sie tatsächlich erreichen müssen. –

+0

Ist 'Sheets (" Dashboard ")' in x oder y? –

Antwort

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

Dies ist nicht eindeutig. Die ActiveWorkbook ist y. Wenn das Blatt "Dashboard" in y nicht existiert, wird ein Fehler ausgegeben. Wenn es dieses Problem ist, dann verwenden Sie:

x.Sheets("Dashboard").Select 

Genau wie Sie zuvor mit den anderen Blättern!

By the way, wenn Sie keine Bildschirmaktualisierung wollen als Öffnen der Datei lang sein kann (und vielleicht auch zu Fehlern führt), verwendet

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