VBscript和Excel:打开和关闭Excel对象-Arraylist阻止关闭对象

VBscript和Excel:打开和关闭Excel对象-Arraylist阻止关闭对象,excel,vbscript,arraylist,Excel,Vbscript,Arraylist,我遇到了一个vbscript问题,它创建Excel对象并从Excel文件中读取 vbscript从Excel宏执行,然后创建并打开Excel文件并从中读取。问题是Excel对象并非总是关闭的,即使我正在尝试关闭它 以下是vbscript中的代码: Set ExcelObject = createobject("Excel.Application") ExcelObject.workbooks.open testWorkBookPath Set testActionArray = CreateO

我遇到了一个vbscript问题,它创建Excel对象并从Excel文件中读取

vbscript从Excel宏执行,然后创建并打开Excel文件并从中读取。问题是Excel对象并非总是关闭的,即使我正在尝试关闭它

以下是vbscript中的代码:

Set ExcelObject = createobject("Excel.Application")
ExcelObject.workbooks.open testWorkBookPath

Set testActionArray = CreateObject( "System.Collections.ArrayList" )

Function getTestsCaseActions (testsPath, esheet, row, col)
    Set my_sheet = ExcelObject.sheets.item(esheet)  

    tempArray = array(my_sheet.cells(row, col-2), "")
    testActionArray.Add tempArray

    Do While my_sheet.cells(row, col).Value <> ""
        tempArray = array(my_sheet.cells(row, col), my_sheet.cells(row+1, col))
        testActionArray.Add tempArray
        col = col+1
    Loop
End Function

getTestsCaseActions testWorkBookPath, testCaseSheet, 3, 4

ExcelObject.Quit
然后生成的进程不会退出,进程列表会一直增长,直到Excel完全崩溃

我不明白这一点;代码的最后一位所做的就是循环遍历ArrayList并打印内容。为什么不退出呢

编辑:至少有些Excel对象最终会从Process Explorer中消失,但这需要大约20-30分钟。而这只是其中的一小部分——大部分还在那里。至少目前我的列表缩小了一些,但仍有大约15个Excel进程在运行

同时,突然出现以下信息:

File Now Available
'filename.xlsm ' is now available for editing. Choose Read-Write to open it for editing.

这句话似乎有帮助。它并没有完全删除所有额外的进程,但是这个数字增长到5个,然后又回到2个,以此类推。所以它工作得很好

dim book: for each book in ExcelObject.Workbooks: book.saved = true: next 

Excel是否认为工作簿正在编辑?可能Excel正试图显示“是否要保存更改”对话框。在退出之前,为ExcelObject中的每本书尝试类似于
dim book:的操作。工作簿:book.saved=true:next
。似乎“oracle认证专家”发布的行有帮助。我将保留它一段时间,并观看process explorer。oracle认证专家:据我所知,您的建议是有效的。如果你加上它作为答案,我会给它正确的信用。
dim book: for each book in ExcelObject.Workbooks: book.saved = true: next