Ich habe ein Verbesserungsformular, das ich als Vorlage für die Erstellung zukünftiger Dokumente verwenden möchte. Ich habe mich gefragt, ob es möglich ist, mithilfe von VBA eine Befehlsschaltfläche in das Arbeitsblatt einzufügen, um eine Kopie zu erstellen und sie unter dem Namen des Autors mit einer zusätzlichen Nummer zu speichern, damit wir die im Laufe des Jahres vorgenommenen Verbesserungen nachverfolgen können.
Beispielsweise eine Dokumentvorlage > klicken Sie auf die Schaltfläche > öffnen Sie das Benutzerformular, um den Namen des Autors einzugeben > und klicken Sie, um ein neues Dokument zu erstellen, das an einem bestimmten Ort gespeichert wird.
Antwort1
JA, das ist durchaus möglich. Ich möchte Ihnen vorschlagen, den unten stehenden VBA-Code zu verwenden. Er hilft Ihnen dabei, die Arbeitsmappenvorlage unter einem neuen Namen zu speichern.
Sub CreateNewBook()
Dim wbk As Workbook
Dim sht1,sht2 As Worksheet
Dim lng As Long, rng As Range
Set sht1 = Sheets("IndexName")
Set sht2 = Sheets("NameData")
lng = sht1.Cells(Rows.Count, "A").End(xlUp).Row
Set rng = sht1.Range("A2:A" & lng)
For Each c In rng
Sheets("Template").Copy
Set wbk = ActiveWorkbook
wbk.Sheets(1).Range("A100") = c.Value
sht2.Copy After:=wbk.Sheets(1)
wbk.SaveAs c.Value & ".xlsx"
wbk.Close False
Next
End Sub
Hinweis:Das Blatt „IndexName“ hat einen Namen in Zelle A2, der vom Code jedes Mal als „Neuer Dateiname“ verwendet wird, wenn Sie auf die Schaltfläche zum Kopieren des Vorlagenblatts klicken.Vergessen Sie also nicht, Zelle A2 mit dem neuen Namen zu aktualisieren.
Das Blatt „NameData“ wird verwendet, um eine Übersicht über neue Dateien ab Zelle A100 zu speichern.
Außerdem speichert dieser Code die Dateien am Standardspeicherort. Wenn Sie diesen ändern möchten, können Sie das tun.
Ich hoffe, das hilft Ihnen. Ich habe diesen VBA-Code gepostet, nachdem ich ihn getestet habe.