/ / Errore nella restituzione dell'oggetto cartella di lavoro dalla funzione: excel, vba, excel-vba

Errore durante la restituzione dell'oggetto della cartella di lavoro dalla funzione - excel, vba, excel-vba

Quando tento di restituire un fileoggetto cartella di lavoro da questa funzione ricevo un errore. Ho visto diversi post su SO su questo argomento, ma la maggior parte sembra indicare l'uso di una variante come tipo di ritorno e mi è stato detto che "è un grande no no più e più volte. (Francamente, non voglio nemmeno utilizzare un tipo di dati variant)

Testo dell'errore: Errore di run-time "91": Variabile oggetto o Con variabile di blocco non impostata. Ho visto anche altri post su SO che contenevano errori, ma nessuno sembra essere stato "91".

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)

Il nuovo oggetto cartella di lavoro viene impostato nella routine principale tramite la riga seguente

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

risposte:

1 per risposta № 1

Non utilizzare "attivo ..." se non è necessario. Usa le variabili che declini correttamente.

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

Fine Funzione


2 per risposta № 2

Che ne dici se provi in ​​questo modo alla fine del codice:

set NewWorkbook_Open = Workbooks(ActiveWorkbook.Name)

Funziona?