VBA: Speichern unter mit Dateinamen aus bestimmter Zelle?
Hallo zusammen,
ich habe mal wieder ein kleines Excelproblem, das eigentlich schon tausendfach in Foren besprochen wurde... ◔_◔
Und zwar will ich eine Datei unter neuem Dateinamen speichern, und der Name steht als Referenz der Einfachheit halber in der Zelle A1 des Tabellenblattes Sheet1.
Aus Gründen höherer Flexibilität des Codes habe ich einen geänderten Zielpfad eingebaut (Documents statt Downloads) und die Datei wird auch unter einem anderen Format (xls statt xlsx) abgespeichert.
In A1 würde z. B. für den Dateititel "Stichprobe 1" stehen, somit sollte die Datei am Ende als "Stichprobe 1.xls" abgespeichert sein.
Der Code ist analog https://docs.microsoft.com/de-de/office/troubleshoot/excel/save-file-to-network-drive, jedoch bekomme ich ab dem Schritt ActiveWorkbook.SaveAs den "Laufzeitfehler 9 - Index außerhalb des gültigen Bereichs" angezeigt:
Sub SaveAsFromCell()
Dim wb As Workbook: Set wb = Workbooks.Open("C:\Users\Vorname Nachname\Downloads\Vorlage.xlsx")
Dim strFilename As String: strFilename = ActiveSheet.Range("A1").Text
Worksheets("Sheet1").Activate
ActiveWorkbook.SaveAs Filename:="C:\Users\Vorname Nachname\Documents\" & strFilename, FileFormat:=".xls"
wb.Close
End Sub
Wo liegt der Fehler?
Danke & schönes Restwochenende :)
2 Antworten
Es gibt gar nicht so viele, mögliche Fehlerquellen.
Probier einmal den Dateinamen direkt in den Speichernbefehl zu schreiben. Wenn das funktioniert, dann wird der Wert aus der Zelle nicht richtig ausgelesen. Das könntest du beim Debuggen herausfinden.
Ich greife zum Beispiel auf eine Zelle nie mit .Text zu. Eventuell ist das der Fehler. Versuch es einmal mit .Value.
Desweiteren könnte es helfen, wenn du wb.Worksheets("Sheet1").Activate verwendest, um sicher zu gehen, dass Sheet1 von der richtigen Arbeitsmappe aktiviert wird.
Eventuell bekommst du ein Konvertierungsproblem beim Downgraden von xlsx auf xls.
Abschließend möchte ich erwähnen, dass du dir überlegen könntest, eine Vorlage xltx zu verwenden.
ggf gibt es in der Zelle A1 Sonderzeichen, die in einem Dateipfad nicht erlaubt sind.
Jup, das fehlende wb. war der Fehler. Mal wieder besten Dank!