
我知道這可能有點XY問題,所以我將從頭開始。
不幸的是,我公司工作場所的 MS Office 最新更新破壞了我的 Excel 應用程式。它嚴重依賴 VBA,分佈在多個檔案中。有幾個是 .xlam 文件,這些文件只是為了方便而被分割,因此用戶不必一次性加載所有程式碼,而是可以根據他們想要使用應用程式的哪一部分單獨加載文件。
錯誤如下:
“Excel 無法開啟檔案 Portal.xlsm,因為檔案格式或檔案副檔名無效。請驗證檔案是否已損壞且副檔名與檔案格式相符”
我知道這個文件沒有任何問題。它沒有損壞,因為我設法透過電子郵件將文件發送給自己在家中。它使用我的家用 Excel 打開,我能夠準確地診斷哪一行出現了錯誤。當刪除(非關鍵)行後,文件可以在我的公司環境中正確開啟。
出於興趣,有問題的行是這樣的:
'Required functions to test the state of the shift key (for developer to pause Launcher)
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
我不知道為什麼這個 GetKeyState 函數會導致整個 Excel 檔案無法開啟 - 所以如果有人有任何想法,我想聽聽他們(我知道我也應該在 StackOverflow 上重複這篇文章)
然而,雖然這個主文件現在可以工作,但第二個問題出現了。無法載入 XLAM 檔。更神秘的是,當我嘗試在家用電腦上打開它們時,它們無法被識別。我家裡有 Excel 2019(版本 2110)。在工作中,我使用 MS Office 365 版 Excel。
所以我現在的想法是,如果我可以以某種方式打開 xlam 文件,我可以檢索程式碼並將模組複製/貼上到主文件中。就像我決定分開他們之前一樣。唯一的問題是,由於神秘的安全更新,我無法打開這些 xlam 檔案。
這讓我想到了我的問題:如果我可以使用舊版的 Excel,我可以打開這些 xlam 檔案 - 純粹是為了查看 VBA 模組 - 然後按照此處所述複製它們。
誰能建議我可以訪問舊版本的 MS Excel 的地方嗎?最好是便攜式的,因為我寧願避免重新安裝的麻煩。謝謝。
注意我在一個非常大的政府部門工作,對我的公司網路的管理權限為零。沒有機會更改任何註冊表配置!
答案1
Office 365 管理中心的部署僅適用於新一代 Web 加載項,因此您的加載項.xlam
確實無法再部署。
我不知道有便攜式 Office 版本,但我知道可以從哪裡下載舊版本的 Office。這些可以安裝在虛擬機器內,以避免擾亂您的工作環境。
您可以從網站下載多個 Office 版本 WZT 的技術基準:
這些圖像是從 Microsoft 網站下載的(即使官方網站上不存在這些版本)。在此網站中找不到序號(它不是駭客網站),但試用期足以滿足您的目的。