Board logo

標題: 沒有足夠的記憶體可完成此動作 [打印本頁]

作者: ssooi    時間: 2021-5-3 19:27     標題: 沒有足夠的記憶體可完成此動作

[attach]33269[/attach]

各位高手
小弟VBA好不容易寫完了
但是發現程式如果執行兩遍
好像就會出現上述的錯誤訊息

重開機後,大概執行兩遍後還是會出現該錯誤訊息

[attach]33270[/attach]
作者: ssooi    時間: 2021-5-3 19:44

我發現我把下面程式碼刪除後
程式就正常了
請問我的程式該怎麼改善
謝謝大家了
  1. file_path = ThisWorkbook.Path
  2. Sheets(sheet_name).Copy
  3. ActiveWorkbook.SaveAs file_Name, xlNormal
  4. 清除剪貼簿
  5. Application.CutCopyMode = False
  6. Workbooks(work_name).Activate
  7. Sheets("程式").Visible = True
  8. Sheets(sheet_name).Delete
  9. Sheets(temp_sheet_name).Delete
複製代碼
各位高手
小弟VBA好不容易寫完了
但是發現程式如果執行兩遍
好像就會出現上述的錯誤訊息

重開機後 ...
ssooi 發表於 2021-5-3 19:27

作者: 劉大胃    時間: 2021-5-4 10:12

Hello, Ssooi

參考這個看看是否可以解決您的問題?
http://forum.twbts.com/thread-22923-1-1.html
作者: ssooi    時間: 2021-5-4 22:56

本帖最後由 ssooi 於 2021-5-4 22:58 編輯

回復 3# 劉大胃
感謝您的回覆
不過好像還是一樣會發生記憶體不足

我後來在測試一次
上述程式碼都不變動
也不用刪除任何程式碼
只加了一行程式碼就正常了
就是分頁另存新檔後
馬上將新檔關起
就不會發生記憶體不足的錯誤了
  1. Sheets(sheet_name).Copy
  2. ActiveWorkbook.SaveAs file_Name, xlNormal
複製代碼
上述程式的後面加上→【ActiveWorkbook.Close True】
就正常了!!

我之前有用記憶體監測,其實記憶體一直都在50-60而已
還是會記憶體不足
直到發現加了【ActiveWorkbook.Close True】才沒有錯誤訊息

算是是微軟的BUG嗎
一個另存的新分頁
居然會造成記憶體不足
網路幾乎查不到甚麼資訊


以上小小測試
作者: 劉大胃    時間: 2021-5-6 13:42

回復 4# ssooi

Hello,

Sheets(sheet_name).Copy
您這行指令, 可有Paste ?
我想您關掉檔案的動作是正確的,
讓系統有足夠的空間作業.
另提供Office 32bits, 無論您DRAM多大, 它就只有4GB的工作空間而已.
所以也要確認一下您的Office版本.
Thanks ~




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)