Kopieren Sie ein Blatt aus einer Arbeitsmappe, und speichern Sie Sie in einer neuen Arbeitsmappe mit dem Namen wird der Wert in einer Zelle
Ich möchte zum kopieren von Tabelle2 aus Workbook1 und füge Sie in Tabelle1 der neuen Arbeitsmappe und speichern Sie die neue Arbeitsmappe den Wert der Zelle A1 in Tabelle2 der Arbeitsmappe 1. Ich möchte dieses makro ausgelöst, wenn ich auf eine Schaltfläche klicken, die habe ich Hinzugefügt.
Hier ist, was ich bisher getan habe, aber es schafft zwei Arbeitsmappen
- Eine mit dem richtigen Namen, aber nicht der Inhalt von Tabelle2, Workbook1
- Und ein anderer, der hat den Inhalt von Tabelle2, Workbook1 aber nicht der richtige name der Arbeitsmappe
Sub CreateWorkbook()
Dim n As String
n = ThisWorkbook.Path & "\" & Range("A1").Value & ".xls"
Workbooks.Add
ActiveWorkbook.SaveAs n
ThisWorkbook.Sheets("Sheet2").Copy
ActiveWorkbook.Sheets("Sheet1").PasteSpecial xlPasteValues
End Sub
Was vermisse ich hier?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass die neue Arbeitsmappe erstellt von
Workbooks.Add
wirdActiveWorkbook
standardmäßig.Arbeiten mit
ThisWorkbook
undActiveWorkbook
kann manchmal verwirrend erhalten.Ich mag Dinge wie Arbeitsmappen und Arbeitsblätter zu Variablen, damit Sie wissen, was Ihr Umgang mit 🙂
Hätte ich nicht die
Copy
dannPasteSpecial
bit zu arbeiten (obwohl ich nicht versuchen, alles, was schwer).Beispiel unten sollte das tun, was Sie wollen. Ich verwendet
Sheet2!A1
für den Namen der Datei, war nicht sicher, was dieAK545
im code-Beispiel wurde für.Output.Worksheets("Sheet1").Delete
?Sheet1
es kopiert das ganze Blatt in die neue Arbeitsmappe (die aufgerufen wirdSheet2(2)
aufgrund doppelter Namen), die ich löschenSheet1
so können benennen Sie die neue PlatteSheet1