将工作簿对象传递给另一个函数时出错(运行时“自动化错误”)

我有一组函数是为了从不同的工作簿中的各种工作表中读取数据。 主例程使用一个循环遍历各个表名,并在两个级别的函数内部查看工作簿以获取数据。 我得到runtime error '-2147023174' (800706ba) Automation error在这个函数的各个点的runtime error '-2147023174' (800706ba) Automation error ,我想知道错误在哪里。

 Sub mainRoutine() 'opens workbook and runs makeFile function on a loop Dim wbOBJ As Workbook, oFile As integer Set wbOBJ = Workbooks.Open(filePath, ReadOnly:=True) For k = 1 To 20 makeFile myBox.List(k), wbOBJ Next k wbOBJ.Saved = True wbOBJ.Close End Sub Function makeFile(ShtName As String, ByRef wbOBJ as Workbook) 'calls various procedures from which to collect data 'and passes workbook object along debug.print wbOBJ.Sheets(1).Cells(1,1).Value printInfoA(ShtName) printInfoB(ShtName, wbOBJ) End Function Function printInfoB(ShtName as String, ByRef wbOBJ as Workbook) 'assigns object to a sheet inside the other workbook, collects data Dim wsOBJ As Worksheet Set wsOBJ = wbOBJ.Sheets(ShtName) For j = 1 to 10 Thisworkbook.Sheets(1).Cells(j,1) = wsObj.Cells(j, 1) Next j End Function 

即使在makeFile函数中,即使debug.print工作,错误也会在debug.print行中popup,并产生正确的值。 如果我压制这一行,那么在wbOBJ.Saved = True行的wbOBJ.Saved = True将会出现相同的错误。 什么是造成这些错误?

(请注意,我最初试图用这种方式来组织它,而不是每次运行printInfoB函数时打开和closures工作簿,因为我正在尝试提高速度。)