/ / Fehler beim Zurückgeben des Arbeitsmappenobjekts von der Funktion - excel, vba, excel-vba

Fehler beim Zurückgeben des Arbeitsmappenobjekts von der Funktion - excel, vba, excel-vba

Wenn ich versuche, eine neu erstellte zurückzugebenArbeitsmappenobjekt von dieser Funktion Ich erhalte eine Fehlermeldung. Ich habe mehrere Posts auf SO darüber gesehen, aber die meisten scheinen darauf hinzudeuten, eine Variante als Rückgabetyp zu verwenden, und mir wurde gesagt, dass dies immer wieder ein großes Nein ist. (Ehrlich gesagt möchte ich auch keinen varianten Datentyp verwenden)

Fehlertext: Laufzeitfehler "91": Objektvariable oder Mit Blockvariable nicht gesetzt. Ich habe auch andere Beiträge auf SO gesehen, die Fehler hatten, aber keiner scheint "91" gewesen zu sein.

Private Function NewWorkbook_Open(ByVal clientName As String, ByVal startDateFromSheet As Date) As Workbook

"Creates/formats new workbook and saves it to the xdrive without any completed
Dim newWorkBook As Workbook
Dim activeWorkbookName As String
Dim formattedDate

Workbooks.Add

formattedDate = Replace(Format(startDateFromSheet, "mm/dd/yy"), "/", ".")

"Saves workbook with new file name with date attached in saveable format
ActiveWorkbook.SaveAs Filename:=XLS_CONFIRM_FILE_PATH & "-" & GetOfficialClientName(clientName) & " " & formattedDate & ".xls", FileFormat:=xlNormal


NewWorkbook_Open = Workbooks(ActiveWorkbook.Name)

Das neue Arbeitsmappenobjekt wird in der Hauptroutine über die folgende Zeile festgelegt

Set newExcelConfirmBook = NewWorkbook_Open(.Cells(rowCounter,sellerFirmColumn).Value, startDateFromSheet)

Antworten:

1 für die Antwort № 1

Verwenden Sie nicht "aktiv ...", wenn Sie nicht müssen. Verwenden Sie die Variablen, die Sie korrekt deklarieren.

Private Function NewWorkbook_Open(ByVal clientName As String, ByVal startDateFromSheet As Date) As Workbook

"Creates/formats new workbook and saves it to the xdrive without any completed
Dim newWorkBook As Workbook
Dim activeWorkbookName As String
Dim formattedDate

Set newWorkBook = Workbooks.Add

formattedDate = Replace(Format(startDateFromSheet, "mm/dd/yy"), "/", ".")

"Saves workbook with new file name with date attached in saveable format
newWorkBook.SaveAs Filename:=XLS_CONFIRM_FILE_PATH & "-" & GetOfficialClientName(clientName) & " " & formattedDate & ".xls", FileFormat:=xlNormal


Set NewWorkbook_Open = newWorkBook

Funktion beenden


2 für die Antwort № 2

Wie wäre es, wenn Sie es am Ende Ihres Codes so versuchen:

set NewWorkbook_Open = Workbooks(ActiveWorkbook.Name)

Funktioniert es?