VBA - 由Workbook.Save引起的内存不足?

时间:2015-06-11 12:48:55

标签: vba out-of-memory nothing listobject

我有以下Sub。该脚本使一些信息每15秒写入一个固定长度的表。然后将结果绘制成图形,以创建实时移动的图形感觉。

问题在于,当我取消注释保存工作簿的行时,我注意到在任务管理器中Excel使用更多内存(大约3000KB)并保留它。最终,Excel耗尽内存并崩溃。我已经尝试将我的对象和东西设置为Nothing,但这没有用。这完全归功于保存线,但我不知道为什么。如何保存并避免内存问题?

Sub Record()

    Dim BookValueTable As ListObject: Set BookValueTable = Range("bookvalue_table").ListObject

    If Sheets("Orders").LoggingButton.Value And _
        BookValueTable.Range(BookValueTable.ListRows.Count + 1, 1) <> Now Then

        Dim NewRow As ListRow: Set NewRow = BookValueTable.ListRows.Add(AlwaysInsert:=True)
        NewRow.Range(1, 1) = Now
        NewRow.Range(1, 2) = Sheets("Orders").Range("total_dollar_pnl")
        While BookValueTable.ListRows.Count >= 28800
            BookValueTable.ListRows(1).Delete
        Wend
        ThisWorkbook.RefreshAll
        If Hour(Now) = 17 Then
            Application.OnTime TimeValue("18:00:00"), "Record"
        Else
            Application.OnTime Now + TimeValue("00:00:" & 15 - (Second(Now) Mod 15)), "Record"
        End If
        'Workbooks("Book1.xlsm").Save
    End If

    Set BookValueTable = Nothing
    Set NewRow = Nothing

End Sub

0 个答案:

没有答案