【问题标题】:Delphi program no longer starts ExcelDelphi 程序不再启动 Excel
【发布时间】:2020-11-11 14:14:04
【问题描述】:

Delphi Rio,Win10 64 位,Excel 2016-64 位。我有一个我不久前在 Delphi 中编写的实用程序。它打开一个 html 文件,启动 Excel,解析 html 文件,并将各个部分转储到 Excel 中。它一直运行良好......突然间,我最近去运行它,现在我遇到了错误。具体来说,我收到 EOleSysError - 服务器执行失败,ProgID:Excel.Application。尝试启动 Excel 时会发生这种情况。我没有重新编译我的程序,它只是停止工作,现在给出了这个错误。我验证了 Excel 可以毫无问题地手动启动/使用/停止。我确认后台没有运行 Excel 可执行文件。我确实尝试对我的应用程序进行完全重新编译,没有任何变化......系统上唯一改变的是windows进行了相当大的更新,并且我安装了一些额外的程序(罗技相机等)没有说话脱颖而出)。我很茫然。当我运行我的代码时,它在 CreateOleObject 行上失败。这是例程..

// This routine Starts excel
function glib_StartExcel: Integer;
var
  myAPP: OleVariant;
  Save_Cursor: TCursor;

begin
// Assume that it is already running
result := glib_FAILURE;

  if not Assigned(oExcel) then
  begin
    Save_Cursor := Screen.Cursor;
    Screen.Cursor := crHourglass;

    myAPP := CreateOleObject('Excel.Application');
    oExcel := IDispatch(myAPP) as ExcelApplication;

    Screen.Cursor := Save_Cursor;
    result := glib_SUCCESS;
  end;
end;

oExcel 是 ExcelApplication 类型的全局变量。其中,我的USES子句包含

System.UITypes, ComObj,  Office_TLB, Excel_TLB, DB,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls,...

我去检查了一个完全不同的程序,它再次启动并与 Excel 一起工作。我收到类似的错误:EOleSysError: Server Execution failed, ClassID:{bunch of number... 似乎是一个 GUID}。这个程序也没有被重新编译。有什么想法吗? 知道发生了什么吗?

** 附加信息。当我尝试运行我的程序时,我在 Windows 事件日志中收到错误消息。消息是:

Faulting application name: EXCEL.EXE, version: 16.0.11629.20246, time stamp: 0x5cfadf82
Faulting module name: KERNELBASE.dll, version: 10.0.19041.572, time stamp: 0x1183946c
Exception code: 0xc0020001
Fault offset: 0x0000000000023e49
Faulting process id: 0x208
Faulting application start time: 0x01d6b84ea1de50b0
Faulting application path: C:\Program Files\Microsoft Office\Root\Office16\EXCEL.EXE
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: bed97990-8ead-4593-a058-e834105f0654
Faulting package full name: 
Faulting package-relative application ID: 

** EDIT2 - 我找到了一个 MS Word 宏,它使用 CreateObject... 打开 Excel。这在我的电脑中也不起作用。这让我相信有人我的电脑配置搞砸了。我确实进入了 Windows 更新并确保我已应用所有更新。

**EDIT3 - 我进行了 Office 快速修复以及在线/完整修复(下载并似乎重新安装了 Office。两者都没有改变问题。

【问题讨论】:

  • 更新是否影响了您的用户权限?或更改目录权限?
  • 尝试重新安装 Excel。
  • @@Solar Mike - 我不能说。我可以开始一切正常。只是我的应用无法启动 Excel。
  • @@Oliver - 虽然这是一个选项,但由于 Excel 插件,这是一个主要的恶化。我只会在万不得已的情况下这样做......我祈祷它不会发生这种情况。
  • 在注册表中搜索是否找到具有“Excel.Application”作为数据的键。在我的系统上,它位于:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Classes\CLSID\{00024500-0000-0000-C000-000000000046}\VersionIndependentProgID 这是 CreateOleObject('Excel.Application') 搜索的关键。

标签: excel delphi ole


【解决方案1】:

感谢大家的建议...不幸的是,没有任何效果,包括完整的在线修复。我最后不得不完全卸载然后重新安装。这解决了我的问题。

【讨论】:

    猜你喜欢
    • 2021-10-30
    • 2018-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多