我知道这可能是一个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)。在工作中,我有 Excel for MS Office 365。
所以我现在想的是,如果我能以某种方式打开 xlam 文件,我可以检索代码并将模块复制/粘贴到主文件中。就像在我决定将它们分开之前一样。唯一的问题是,由于一个神秘的安全更新,我无法打开这些 xlam 文件。
这让我想到了我的问题:如果我可以使用旧版本的 Excel,我可以打开这些 xlam 文件——纯粹是为了查看 VBA 模块——然后按照此处所述复制它们。
谁能建议我可以访问旧版本的 MS Excel 的地方?最好是便携式的,因为我宁愿避免重新安装的麻烦。谢谢你。
注意我在一个非常大的政府部门工作,并且对我的公司网络拥有零管理员权限。没有机会在那里更改任何注册表配置!