Excel檔案毀損:VBA模組名稱更改,復原程式資料

Excel開啟附帶巨集的檔案時,可能發生毀損且無法修復的情形,造成VBA程式碼被刪除不見,本文介紹利用蘋果電腦將模組名稱改為中文,成功把資料救回來。

一、Excel檔案毀損

開啟Excel檔案時,尤其是附有巨集的檔案,可能會如同截圖的視窗,提醒部分檔案內容有問題,若信任這一個檔案,Excel可以幫忙做修復,此時心頭一震,按下「是」。

一張含有 文字 的圖片

自動產生的描述

二、VBA程式碼消失

期待Excel能幫忙修復檔案,順利開啟檔案之後,沒想到 VBA直接被移除,熟悉贊贊小屋的讀者看到截圖畫面,應該知道它是VBA大全集課程的輔助教材:「VBA程式代碼圖書館」的檔案,而VBA被移除代表了累積多年的程式碼,瞬間化為烏有。

Excel檔案毀損:VBA模組名稱更改,復原程式資料 2

三、開啟VBA編輯器

滿懷期望開啟VBA編輯器,會看到畫面中什麼都沒有,正如同一個空白的活頁簿。

Excel檔案毀損:VBA模組名稱更改,復原程式資料 4

四、版本瀏覽器備份

通常像這種情況最先想到的是備份,而贊贊小屋剛好有使用個人雲端空間NAS工具,「版本瀏覽器」中會自動保留不同時段的版本,贊贊小屋把每個版本都下載,複製後開啟,結果很失望,仍然都是和先前第一個步驟相同提示,程式碼都消失不見了,可見並非單一檔案的問題,也許是Excel軟體發生不明原因的故障。

關於贊贊小屋所使用的NAS工具,可以參考相關文章

一張含有 文字 的圖片

自動產生的描述

五、部份檔案正常

測試後發現開啟某些附有巨集的檔案卻是正常,所以顯然不是軟體本身的問題,微軟客服網站常常提到的唯一一招:將軟體砍掉重新安裝,想必也是同樣的狀況。

Excel檔案毀損:VBA模組名稱更改,復原程式資料 7

六、Mac蘋果電腦

贊贊小屋有桌上型電腦也有筆記型電腦,並且使用先前第四步驟所提到的NAS隨時同步,然而在另外一台Windows電腦開啟Excel檔案也是相同情形。不過贊贊小屋因為教學需要另外有一台蘋果Mac電腦,於是打開不常使用的蘋果電腦,發現可以正常的開啟檔案,驚喜地看到非常寶貴的VBA程式代碼圖書館!

一張含有 文字 的圖片

自動產生的描述

七、VBA模組名稱

首先還是把蘋果電腦能夠正常開啟的寶貴Excel檔案備份,同步到Windows電腦,開啟後發現仍然是毀損狀態,進一步柯南檢視Windows電腦的線索,在正常和毀損檔案之間可能的差異應該是「模組名稱」,正常檔案是預設的英文名稱,毀損檔案則是修改成中文模組名稱,因此試著將蘋果電腦Excel檔案中的所有模組都改成英文,終於可以在Windows電腦正常開啟,而如同文章先前所述,這是一個VBA程式碼大全的檔案,即使只是將程式模組名稱由中文改為英文,還是要花了一些時間。

Excel檔案毀損:VBA模組名稱更改,復原程式資料 10

VBA亂碼與程式毀損

贊贊小屋先前曾經遇到Excel正常顯示、VBA編輯器卻是亂碼情形,有興趣可參考相關文章,當初的心得是VBA雖然嵌套在Excel上面,但VBA仍然是一個獨立工具,因此即便在Excel安裝了不同語言的套件,在VBA並沒有同步兼容的效果。而先前只是VBA顯示有部分亂碼,不影響程式碼本身資料內容,這次經驗則是整個程式碼完全不見,有點可怕,因此建議讀者若非必要情形,盡量避免更改VBA的模組名稱,至少不要改成中文,以免發生同樣狀況。

每天學習,每天充電:VBA自動化文章合輯