我看到有人发布了类似的问题,但这些解决方案都不起作用,或者它们适用于不同版本的 Excel 和 Windows。让我尝试针对我的情况提出一个具体问题。
问题(烦恼):当我双击文件.xslx
、从最近的文档中选择等时,Excel 会启动。但是,它启动时没有打开文件。没有显示错误消息。如果我打开它,文件会正常打开从 Excel;我无法启动 Excel文件已加载。我正在使用 Windows 7 和 Office 365。
我尝试过的:
- 禁用选项 -> 高级 -> 常规 -> 忽略使用 DDE 的其他应用程序。为了好玩,我甚至尝试启用此功能,然后重新禁用它。
- 取消与 Excel 的关联
.xslx
并重新关联 - 在 Excel 上运行修复
- 更新版本(这是企业安装,修复程序已推送给我)
- 检查事件查看器中的 Windows 应用程序日志;尝试启动文件时没有出现错误。
- 当我使用指定的文档直接从命令行运行 excel 时,即
"C:\Program Files\Microsoft Office 15\root\office15\EXCEL.EXE" "C:\Path\to\my\file.xlsx"
,它会按预期启动。这让我认为问题出在我的 Windows 配置上,而不是 Excel 上。 assoc .xlsx
节目.xlsx=Excel.Sheet.12
ftype Excel.Sheet.12
节目Excel.Sheet.12="C:\Program Files\Microsoft Office 15\Root\Office15\EXCEL.EXE" /dde
- 其他在职的文件启动具有相同的
assoc
设置ftype
。 - 资源管理器中的“编辑”上下文菜单命令与“打开”有同样的问题
我不能尝试的是:
- 更改文件关联的具体细节;资源管理器中的文件夹选项中的文件类型在 Windows 7 中不存在,因此我无法更改命令行参数。但是,我已经以 Windows 7 方式检查了文件关联。
知道什么原因导致 Windows 在打开文件时无法按预期启动 Excel 吗?
更多线索:
查看启动的进程,命令行中完全缺少文档路径;这是全部运行的内容:
“C:\Program Files\Microsoft Office 15\Root\Office15\EXCEL.EXE”/dde
不知何故该文件没有被添加到命令行。
答案1
我只是想为精确的相同的症状(能够使用命令提示符打开,并通过 excel 内浏览,但不能从文件资源管理器打开)可以通过缺少 DDEExec 注册表项来解释。
例子:
HKEY_CLASSES_ROOT\Excel.Addin\shell\Open\ddeexec
HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\ddeexec
每个父密钥都会缺少以下密钥:
HKEY_CLASSES_ROOT\Excel*\
我的解决方法是将每个密钥导出到工作计算机(具有相同的 Excel 版本)上,然后将其导入到问题系统上。当时我没有想到使用 PowerShell,因此只能自动完成一半的解决方案。此单行代码将导入.reg
您指定的文件夹中的所有密钥。
gci "PATH TO FOLDER CONTAINING .REG FILES" |select -expandp fullname|%{&([scriptblock]::create("regedit /s $_"))}
答案2
我找到了一个解决方法。奇怪的是,它确实有效如果没有这个改变对于其他人来说,如果有人对 shell 的内部工作原理有更多了解,我们将不胜感激。通过在提升的命令提示符中输入以下内容(添加%1
):
ftype Excel.Sheet.12="C:\Program Files\Microsoft Office 15\Root\Office15\EXCEL.EXE" /dde "%1"
...文件路径现在已传递到 Excel,并且现在可以启动文件了。