本帖最后由 Bingo2018 于 2024-10-23 15:47 编辑
请教一下各位大佬,我把C#代码生成exe程序,用VBA调用exe里面的子程序,但是偶尔正常用,也会经常报错,部分电脑正常没问题,小部分电脑就报这个错误提示,时发生错误: 无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel.Application”。此 操作失败的原因是对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来自 HRESULT:0x80029C4A (TYPE_E_CANTLOADLIBRARY))。
代码头部分是这样的,有三个子程序,exe执行是用VBA来调取exe里面的三个子程序来处理不同的表格内容。后面不值找不到问题出在哪里,把每个子程序拆开调试又是正常的。请问我这样写是有问题吗
[C#] 纯文本查看 复制代码 using Microsoft.Office.Interop.Excel;
using System;
using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;
using ExcelApp = Microsoft.Office.Interop.Excel.Application;
using Microsoft.Office.Core;
namespace VBAexe
{
class Program
{
static void Main(string[] args)
{
try
{
ExcelAutomation automation = new ExcelAutomation();
foreach (string arg in args)
{
switch (arg.ToLower())
{
case "subtoolnc2":
automation.SubToolNc2();
break;
case "tpnc":
automation.EPnc();
break;
case "imagedebugging":
automation.ImageDebugging();
break;
case "imagedebugging2":
automation.ImageDebugging2();
break;
}
}
}
catch (Exception)
{
}
//Environment.Exit(0); // 在所有子程序执行完毕后退出程序
}
}
public class ExcelAutomation
{
public void SubToolNc2()
{后面是每个子程序的处理的代码。。。 |