2

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

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

列出从文件夹加载的所有插件的任何想法XLStart

4

1 回答 1

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 文件。

于 2016-09-18T05:09:19.067 回答