从函数返回工作簿对象时出错

当我试图从这个函数返回一个新创build的工作簿对象时,我收到一个错误。 我已经看过几篇关于这个的post,但是大多数似乎都指出使用Variant作为返回types,而且我被告知这是一个很大的问题。 (坦率地说,我不想使用变体数据types)

错误文本:运行时错误“91”:对象variables或未设置块variables 。 我在SO上也看到过其他的post,有错误,但没有一个是“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) 

新的工作簿对象通过以下行设置在主例程中

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

如果你不需要,不要使用“主动…”。 使用你正确分解的variables。

 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 

结束function

如果你在你的代码的末尾这样尝试

 set NewWorkbook_Open = Workbooks(ActiveWorkbook.Name) 

它工作吗?