[英]Excel VBA - out of memory error (runtime 7)
在Excel中使用VBA時出現一個非常奇怪的錯誤。 我正在使用LotusNotes Automation庫遍歷視圖並將所有內容寫入單元格。
這是我的代碼(非利息變量已刪除,因為我知道它們不會引起問題)
公共函數TimeCh()
Set session = New NotesSession 'create a new session (ask for user/pass)
session.Initialize 'initialize the session (allow login)
Set db = session.GetDatabase("HIDDEN") 'Grab the DB
Set view = db.GetView("HIDDEN") 'Get the view
Application.ScreenUpdating = False
'start the loop to go through data
While Not (entry Is Nothing)
Cells(row, 1) = (entry.ColumnValues(4))
Cells(row, 2) = (entry.ColumnValues(0))
Cells(row, 3) = (entry.ColumnValues(26))
Cells(row, 4) = (entry.ColumnValues(27))
Cells(row, 5) = (entry.ColumnValues(22))
Cells(row, 6) = (entry.ColumnValues(20))
Cells(row, 7) = (entry.ColumnValues(29))
Cells(row, 8) = (entry.ColumnValues(31))
Cells(row, 9) = (entry.ColumnValues(30))
Cells(row, 10) = (entry.ColumnValues(8))
Cells(row, 11) = (entry.ColumnValues(7))
Cells(row, 12) = (entry.ColumnValues(21))
Cells(row, 13) = (entry.ColumnValues(19))
Cells(row, 14) = (entry.ColumnValues(24))
Cells(row, 15) = (entry.ColumnValues(25))
Cells(row, 16) = (entry.ColumnValues(32))
Cells(row, 17) = (entry.ColumnValues(28))
Cells(row, 18) = (entry.ColumnValues(9))
Cells(row, 19) = (entry.ColumnValues(12))
Cells(row, 20) = (entry.ColumnValues(11))
Cells(row, 21) = (entry.ColumnValues(23))
Cells(row, 22) = (entry.ColumnValues(10))
Cells(row, 23) = (entry.ColumnValues(2))
Cells(row, 24) = (entry.ColumnValues(33))
Cells(row, 25) = (entry.ColumnValues(1))
Cells(row, 26) = (entry.ColumnValues(13))
Cells(row, 27) = (entry.ColumnValues(5))
Cells(row, 28) = (entry.ColumnValues(14))
Cells(row, 29) = (entry.ColumnValues(6))
Cells(row, 30) = (entry.ColumnValues(18))
Cells(row, 31) = (entry.ColumnValues(16))
Cells(row, 32) = (entry.ColumnValues(3))
Cells(row, 33) = (entry.ColumnValues(15))
Cells(row, 34) = (entry.ColumnValues(17))
Cells(row, 35) = (entry.ColumnValues(34))
row = row + 1
Set entry = vec.GetNextEntry(entry)
Wend
Application.ScreenUpdating = True
結束功能
因此,當行= 1425並且列為35時,它總是會失敗。它給出了“內存不足”(運行時7錯誤)。 它不能是硬件,因為系統非常穩定(雙核,2 gig ram)。 而且它總是在同一行崩潰。
我進行了搜索,發現一個相關的線程: VBA中的Lotus Notes自動化出現“內存不足”錯誤
有人看過類似的東西嗎?
如果代碼在同一文檔和視圖中的同一列上始終失敗,那會讓我相信該文檔存在數據問題。 您可以捕獲錯誤並為失敗的文檔顯示一些唯一的標識符嗎? 我會嘗試這樣做,然后在該文檔的視圖的第35列中查找並檢查該值。 可能在view列中有一個計算,該計算返回@Error或類似內容-進而導致VBA代碼引發內存異常。
隨機問題:
行是什么數據類型? 如果將row定義為double,它是否還會崩潰?
根據您引用的鏈接(實際上,這是我的帖子),如果您將會話定義為靜態變量,它是否仍然崩潰?
即使您沒有執行#2,您是否還記得在函數結束時關閉會話?
這看起來只是更大功能的一個子集。 連續調用幾次?
我讓公司在計算機上安裝Excel 2007。 毫無問題地運行報告,所以我想它一定是2003年內部錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.