Excel在重复打开和关闭工作簿时崩溃

时间:2012-09-21 04:16:48

标签: excel excel-vba excel-2003 vba

在Excel2003中,我看到一个奇怪的事情发生在我写的一个宏来自动修改工作簿列表。我有一个12000个工作簿要修改的列表,所以我需要依次打开每个工作簿,在里面做东西,然后保存并关闭。 在处理了大约1000个工作簿(有时还有几百个)之后,Excel就崩溃了。

这是我正在做的伪代码

public sub ProcessWorkbooks()

    dim i as Integer
    dim targetWorkbook as Workbook

    With thisWorkbook.Sheets("Main").Range("A15")
        Do While .Offset(i, 0).Value <> ""
            set targetWorkbook = Application.Workbooks.Open(.Offset(i, 3).Value)
            If targetWorkbook Is Nothing Then
                Goto NextIteration
            End If
            Application.ScreenUpdating = False
            Call ProcessWorkbook(targetWorkbook)
            Call targetWorkbook.Save
            DoEvents
            Call targetWorkbook.Close
            Application.ScreenUpdating = True
NextIteration:
            i = i + 1
        Loop
    End With

end sub

我的第一个想法是内存泄漏,但后来我认为Excel在崩溃之前应该变得非常慢,但执行速度在崩溃之前保持不变(我没有坐在那里看着几千个工作簿虽然...)。 Excel本身有什么东西会导致这种崩溃吗?也许历史需要清理或类似的东西? 有人曾经发生过这种事吗?

0 个答案:

没有答案