【问题标题】:why does my Excel VSTO add-in work in Excel2021 but not in Excel2013?为什么我的 Excel VSTO 加载项在 Excel2021 中有效,而在 Excel2013 中无效?
【发布时间】:2022-01-01 12:14:46
【问题描述】:

我是开发 VSTO 插件的新手。在演练How to: Programmatically list all worksheets in a workbook 的第二个 VSTO 代码示例之后,VSTO 加载项在 Excel 2021 中没有问题,但在 Excel 2013 中的 Excel.Range rng = this.Application.get_Range("A1"); 行中抛出异常 System.Runtime.InteropServices.COMException: 'Exception from HRESULT: 0x800A03EC'

我在Windows11上安装了2013和2021两个版本,我使用VS2021进行开发。感谢您的回答。

【问题讨论】:

    标签: c# excel vsto


    【解决方案1】:

    Application.Range 属性在 MSDN 中有如下描述:

    当不使用对象限定符时,此属性是 ActiveSheet.Range 的快捷方式(它从活动工作表返回一个范围;如果活动工作表不是工作表,则该属性失败)。

    所以,我建议获取Worksheet 类的实例并针对它调用此属性。

    【讨论】:

    • 我认为它没有回答我的问题......
    • 您是否尝试过获取 Worksheet 实例然后调用范围?它工作正常吗?
    • 我想弄清楚为什么加载项在 Excel 2021 中有效,但在 Excel 2013 中无效。我认为您的回答没有解释。
    • 可能的原因有很多。请参阅Exception from HRESULT: 0x800A03EC Error 了解更多信息。
    • 对此的简短搜索表明不同版本之间的 .NET 框架存在差异。如果您使用的是最新的 Visual Studio,则可能是您当前版本的 .NET 与 Excel 2013 不兼容。这只是推测,因为我对 VSTO 做的不多。从您所遵循的示例看来,可疑行是第一个实际尝试使用 Excel 应用程序对象的行。这可能表明该对象尚未成功创建。正如@EugeneAstafiev 所说,尝试不同的功能,看看是否有效。
    猜你喜欢
    • 2010-09-22
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 2013-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多