症状:启动 MS Excel 时出现“stdole32.tlb”错误消息。此外,关闭此错误消息后,我们可能会看到 MS Office 安装进度窗口。关闭错误窗口后,Excel 可以正常工作,但下次启动时问题又会重复出现。
答案1
此问题与 stdole32.tlb 以及注册表和文件权限无关,而是由 Office 安装目录短名称的更改/丢失引起的。许多注册表值中使用短名称代替长名称,只有 Microsoft 知道原因。
(下面假设我们正在处理 x64 操作系统。对于 x86 操作系统,请替换程序文件 (x86)和程序文件和计划~2和计划~1在所有示例中。此外,您可能需要更改 MS Office 安装目录的最后一个组件的名称 -办公室12适用于 Office 2007)。
我们怎么会丢失短名称?我已经通过使用 MirrorFolder 将所有文件和目录复制到已禁用短名称的新卷来创建系统卷的完整克隆。结果,我在此克隆系统上收到“stdole32.tlb”错误。
我们如何才能更改简称?我已在启用了简称的卷上创建了一个新的克隆。但是……Skype for Desktop!它是在 MS Office 之后安装的,其安装目录是C:\Program Files (x86)\Microsoft\Skype 桌面版。 当然C:\Program 文件 (x86)\Microsoft被首先复制,因此C:\PROGRA~2\MICROS~1简称。C:\Program 文件 (x86)\Microsoft Office随后被复制并得到C:\PROGRA~2\MICROS~2简称。结果,我在这个克隆系统上得到了“stdole32.tlb”错误以及 MS Office 安装进度窗口。
如何修复此问题?最简单且最可取的方法是将所有受影响的注册表值中的短名称替换为长名称:
- 备份注册表(ERUNT 是一个不错的选择)。
- 跑步註冊尋找器。
- 编辑 - 查找... - 查找内容:C:\PROGRA~2\MICROS~1\Office12, [x] 搜索数据, [ ] 匹配整个字符串
- 编辑 - 在查找结果中替换... - 替换为:C:\Program 文件 (x86)\Microsoft Office\Office12
另一种方法是更改C:\Program 文件 (x86)\Microsoft Office(如果在系统卷上启用了短名称,并且C:\Program 文件 (x86)具有有效的短名称)。 它不太受欢迎,所以我只描述主要思想:您需要添加一些字符(例如~)添加到所有受影响目录的名称开头(C:\Program 文件 (x86)\Microsoft和C:\Program 文件 (x86)\Microsoft Office就我的情况而言),然后按照要求的顺序重命名它们。
当然,也可以创建简称C:\Program 文件 (x86)\Microsoft Office即使在系统卷上禁用了短名称,并且C:\Program 文件 (x86)没有简称...但如果你能做到,你肯定不需要我的建议。