問題描述:
用CAD VBA Enabler 撰寫的代碼,內含模塊及幾個視窗,代碼檔案是cad安裝檔案夾里的acad.dvb
我一般每次更新代碼后,把這個檔案在公司電腦和自己電腦倒來倒去,也記不清最早用那種版本創建的了。
自己一臺電腦用cad2014,公司用2008和2004,三者互相拷貝復制均能走通正常運行。
后來把這個acad.dvb檔案拷到自己另一臺電腦,每次加載宏,cad都會直接崩潰,顯示“記憶體不呢為read********”;而在另兩臺電腦運行都是正常的。
這只是手動加載的情況,如果改support內的lsp檔案自動加載,cad啟動直接崩潰。
cad卸載重裝,問題依舊。
然而,如果從新裝的cad從0開始建立代碼,生成acad.dvb檔案,一切是正常的。
換一個版本cad,同樣問題;新建代碼無問題,一旦使用原代碼檔案,立刻崩潰且不可修復。
感覺是檔案本身或系統本身的問題,將錯誤代碼寫到注冊表了。
若要在自己新電腦使用該代碼檔案,大概只能將代碼文字復制出,表單檔案匯出,再手動新建載入了。這樣仍擔心以后通用性的問題。
請問各路大神,這個問題到底是什么原因引起的。
uj5u.com熱心網友回復:
1. 你的“另一臺電腦”,CAD版本是否跟那些“正常”的電腦一致?2. 會不會是這個“檔案格式”在不同的版本中不能完全兼容?
3. 有沒有可能是某些代碼,在不同的版本中有“細微差別”造成運行錯誤?
uj5u.com熱心網友回復:
辦公室2008/2004 筆記本A 2014 筆記本B 2014 卸載重裝 2008 再卸載重裝 2007
感覺和版本關系不大,筆記本A 64位 的2014和辦公室 32位 08/04兩個版本完全互相兼容
筆記本B最開始也是2014 后來改2008 都會崩潰 按理說版本一樣了,代碼細微差別不會有影響了。。。
uj5u.com熱心網友回復:
百度搜相關關鍵字。uj5u.com熱心網友回復:
然而并沒有相關資訊。。。
uj5u.com熱心網友回復:
在“出錯”的電腦上,自己跟蹤一下代碼執行程序吧。PS: 很多菜鳥在代碼中,到處可見“ On Error Resume Next ” !
要我說: 這根本就不是“科學的態度”!!!
我寫的VB/VBA代碼,可以說從來沒有 On Error Resume Next , 只有 On Error Goto XXXX !!!
uj5u.com熱心網友回復:
可能問題描述不清
其實我覺得根本不是代碼的問題,而是軟體裝載程序崩潰 代碼還沒執行呢,裝載程序中就掛了~
話說,一般CAD VBA里面有大量判定drawing圖檔案塊存在與否的代碼,全部改成on error goto 的話,作業量太大比較麻煩…… 還是一句resume next方便~
其實CAD代碼檢查錯誤非常簡單,代碼執行畫出來的圖紙尺寸不對,一眼就看出來了…… 如果圖紙測量后完全精確,代碼幾乎99.9%沒問題,最多某些地方效率差點~
uj5u.com熱心網友回復:
注釋掉所有On Error Resume Next陳述句,在VBA IDE中運行,出錯后點擊除錯,游標會停在出錯的那條陳述句處,
或者
事先在懷疑可能有邏輯錯誤的陳述句處設定斷點,運行經過斷點時中斷,
此時可以在立即視窗中使用
?變數名
或
?函式名(函式引數)
或
程序名(引數)
輔助除錯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/50040.html
標籤:VBA
