2017-04-20 2 views
0

Grundsätzlich möchte ich eine neue Arbeitsmappe erstellen und einige Daten aus einer bereits geöffneten Arbeitsmappe (Dateiname) kopieren und in die neue Arbeitsmappe einfügen. Ich habe den folgenden VBA-Code:Excel vba selection.copy Ziel wird nicht korrekt eingefügt

Workbooks.Add 
Set new_wb = ActiveWorkbook 
Workbooks(Filename).Worksheets("pivot").Range("A28").Activate 
ActiveCell.CurrentRegion.Select 
Selection.Copy Destination:=new_wb.Worksheets("Sheet1").Range("B2") 

Aber ich sehe nichts in das neue Arbeitsmappe eingefügt. Also habe ich mich gefragt, ob ich etwas falsch mache. Jede Einsicht würde sehr geschätzt werden. Vielen Dank!

Antwort

0

Vermeiden Sie Select und Activate: perfekt

Workbooks.Add 
Set new_wb = ActiveWorkbook 
Workbooks(Filename).Worksheets("pivot").Range("A28").CurrentRegion.Copy Destination:=new_wb.Worksheets("Sheet1").Range("B2") 
+0

Danke, funktioniert dieser Code. Könntest du mir erklären, wo genau mein Code falsch gelaufen ist? –

+0

AFAIK, Sie können eine Zelle in einer nicht aktiven Arbeitsmappe nicht aktivieren, also habe ich wirklich erwartet, dass Ihr Code auf dem 'Range (" A28 ")" Activate "abgestürzt wäre. Angenommen, diese Zeile hat Ihren Code nicht zum Absturz gebracht (vielleicht haben Sie einen 'On Error Resume Next', den Sie in der Frage nicht erwähnt haben?), Wäre die aktive Zelle immer noch in der neuen Arbeitsmappe, also haben Sie versucht Kopiere leere Zellen. – YowE3K

+0

Oh ja, ich habe eine 'On Error Resume Next'. Jetzt sehe ich, wo ich falsch lag, danke für deine Erklärung! –

Verwandte Themen