【问题标题】:Why ExcelApplication.Workbooks.Count is showing zero even when I have an Excel workbook open为什么即使我打开了 Excel 工作簿,Excel Application.Workbooks.Count 也显示为零
【发布时间】:2019-10-18 21:05:26
【问题描述】:

ExcelApplication.Workbooks.Count 显示 count = 0 即使我打开了一个文档。

ExcelApplication.Workbooks.Count 当打开的文档不在受保护的视图中时显示 count = 1。但是当打开的文档是 PROTECTED VIEW 时,ExcelApplication.Workbooks.Count 显示为 0。

为什么在受保护的视图excel的情况下工作簿计数为0?

【问题讨论】:

  • 到目前为止你有什么尝试?请粘贴您的代码。

标签: c# excel office-interop excel-interop office-addins


【解决方案1】:

Because:

受保护的视图窗口中显示的工作簿不是工作簿集合的成员。

如果您需要处理受保护的工作簿:

using (var protectedWorkbook = ExcelApplication.ProtectedViewWindows(1).Workbook)
{
    // do stuff 
}

一个稳健的解决方案可以解决多个ProtectedViewWindows 可能出现的故障情况。上面的代码假设只有一个。

【讨论】:

  • 这将导致 COM 对象泄漏,因为您无法释放您获得的 ProtectedViewWindow COM 实例
  • 随意修改,我在移动端。
  • 感谢大卫,链接帮助。如果我尝试将 Application.Interactive 属性设置为 false,还观察到在受保护的视图中。它引发一般错误Exception from HRESULT: 0x800A03EC 我查看了文档docs.microsoft.com/en-us/office/vba/api/… 没有明确提到当文档处于受保护视图时不允许设置交互属性
  • 这个假设是否正确,不允许为受保护的视图文档设置Interactive 属性?
  • 似乎合理,但我不确定。
猜你喜欢
  • 2013-02-10
  • 2022-01-21
  • 1970-01-01
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多