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 № 1Non 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?