【问题标题】:Cannot find all the addins loaded from XLStart folder in VSTO在 VSTO 中找不到从 XLStart 文件夹加载的所有插件
【发布时间】:2012-06-06 11:24:00
【问题描述】:

XLStart 文件夹中有一些 xla 和 xll 文件。在 C# 中,我想找出当前加载的插件。

使用Globals.ThisAddIn.Application.AddIns 无法访问这些插件,但我从here 找到了这个Globals.ThisAddIn.Application.VBE.VBProjects。使用Globals.ThisAddIn.Application.VBE.VBProjects 的问题是它没有列出我所有的 xla 和 xll 文件。

有什么想法可以列出从XLStart 文件夹加载的所有插件?

【问题讨论】:

    标签: excel c#-4.0 vsto excel-addins xla


    【解决方案1】:

    默认情况下,从 XLSTART 目录加载的任何 Excel 文件(包括加载项)都不属于 Addins 集合。

    从 XLSTART 加载的加载项文件将在 VBE 中可见,但由于它是加载项,因此该文件在 Excel 中不可见,并且在 Workbooks 集合中不可枚举。

    枚举 VBE 项目是一种方法,但它要求 VBE 可以在用户的​​ Excel 安全设置下访问,并且在检查项目时,您需要了解已保存/未保存、受保护/未受保护的项目以及那些是其他项目引用的项目。

    但是,仅仅因为 Workbooks 集合不会枚举不可见的加载项并不意味着它们不在 Workbooks 集合中.

    如果您知道要查找的加载项的名称,则可以使用:

    ThisAddIn.Application.Workbooks.get_Item("MyAddin.xlam")
    

    因此,如果您枚举 XLSTART 目录中的文件名,然后检查:

    ThisAddIn.Application.Workbooks.get_Item(addinName).FullName == addinFullName
    

    对于每个文件,您就会知道加载了哪些 XLSTART 文件。

    【讨论】:

      猜你喜欢
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多