步驟 | 操作方式 |
---|---|
1?? | 在 A 電腦打開 VBA 編輯器(Alt + F11)→ 插入標準模組 → 將你的使用者自訂函數(UDF)搬移至 Module。確保此函數 不在 ThisWorkbook 或任何 Worksheet 的程式區內。 |
2?? | 檢查 Excel 的巨集與安全性設定:Tools → Macro Security → 設為允許巨集、啟用?Trust access to the VBA project object model,並確保檔案位於 Trusted Location 或以允許狀態開啟。 |
3?? | 在 VBA 編輯器中執行 Tools → References → 比對 A、B 電腦名稱與勾選項目。有無出現 “Missing …” 提示?若有,須針對相同版本重新設置或取消不必要的參考。 |
4?? | 若 VBA 程式中使用 Declare PtrSafe Function … Lib "xxx.dll" ,需確認 DLL 檔是否存在於 A 電腦,且位於正確路徑。必要時請於 Declare 中指定 完整路徑,或使用 SetDefaultDllDirectories /AddDllDirectory 調整 DLL 搜尋行為。 |
5?? | 回到 VBA 編輯器 → 選 Debug → Compile VBAProject,處理所有編譯錯誤 → 儲存 VBA 專案與 Excel 檔案 → 關閉重開並啟用巨集。 |
6?? | 若以上仍失敗:將該檔複製到 不同資料夾或重新命名 → 不要立即點擊啟用巨集 → 進入 VBA 編輯器 → Debug → Compile → 儲存 → 關閉再以原名開啟 → 啟用巨集。此流程常能解除腐敗狀態。 |
7?? | 若無法解決,可嘗試對 Office 安裝進行 Repair(快速修復或線上修復),以矯正底層 VBA 或 library 的損壞。 |
總結:
最常見原因是 UDF 沒存在標準模組,Excel 無法正確偵測
其他原因包括巨集安全性差異、References異常或Declare的DLL沒有找到。
以上參考~