Excel VBA删除加载项引用,关闭加载项并从VBA项目中删除

时间:2015-08-10 17:32:25

标签: excel vba excel-vba office-addins

我的整体设置非常复杂,所以这是我试图精确定位我坚持的部分。

无论价值多少,我都会非常尊重能够解决这个问题的人。我认为该解决方案需要深入了解Excel加载项。

背景:

以下是我正在处理的相关文件世界:

  • Filepath_2 \ UI_2.xlsm

  • Filepath_1 \ CI_1.xlsm

  • Filepath_1 \ AI_1.xlam

  • Filepath_2 \ CI_2.xlsm

  • Filepath_2 \ AI_2.xlam

Filepath_2 \ UI_2.xlsm是运行VBA的文件,用于在上述其他四个文件中完成所需的文件操作。

Filepath_1 \ CI_1.xlsm包含对Filepath_1 \ AI_1.xlam的引用。

我的目标是......

  • 将Filepath_1 \ AI_1.xlam复制到Filepath_2 \ AI_2.xlam
  • 将Filepath_1 \ CI_1.xlsm复制到Filepath_2 \ CI_2.xlsm
  • 打开Filepath_2 \ AI_2.xlam
  • 打开Filepath_2 \ CI_2.xlsm
  • 从Filepath_2 \ CI_2.xlsm中删除对Filepath_1 \ AI_1.xlam的引用
  • 在Filepath_2 \ CI_2.xlsm中设置对Filepath_2 \ AI_2.xlam的引用
  • ...在Filepath_2 \ CI_2.xlsm ...
  • 处理业务
  • 关闭并删除Filepath_2 \ CI_2.xlsm和Filepath_2 \ AI_2.xlam

......而且,我能够完成以上所有的一切小麻烦:

Filepath_1 \ AI_1.xlam的VBA项目在打开Filepath_2 \ CI_2.xlsm时打开,我无法找到任何关闭它的方法。

问题:

关闭Filepath_1 \ AI_1.xlam的 VBA项目所需的VBA代码是什么?

值得一提的是,我目前无法关闭VBA项目暂时不会对任何事情产生负面影响,因此这实际上是长期控制和流程清洁的问题。我只是不希望一个流浪的VBA项目保持开放。

我对上面提到的文件操作的顺序有点灵活,只要它在最后三个步骤中达到高潮:

  • 在Filepath_2 \ CI_2.xlsm中设置对Filepath_2 \ AI_2.xlam的引用
  • ...在Filepath_2 \ CI_2.xlsm ...
  • 处理业务
  • 关闭并删除Filepath_2 \ CI_2.xlsm和Filepath_2 \ AI_2.xlam

只需要一个先发制人的注意事项来节省每个人的时间:请不要建议更改当前的文件路径集,因为所需的解决方案不能干扰其他需要完成的工作。此文件设置是处理主文件的辅助副本中的业务的更大情况的一部分,之后必须关闭和删除辅助副本。

这是我关于Stack Overflow的第一个问题。我试图让它自成一体,并且没有实际的VBA代码,因为我不认为知道我所要求的解决方案的人需要我自己的代码来提供最有可能的几行代码包括解决方案。

如果您认为可以帮助我,但需要更多信息或实际代码,请告诉我们。谢谢!

编辑:

感谢您的评论到目前为止。请允许我进一步澄清,我认为这确实是问题的关键所在。我还编辑了我原来的问题,以纠正一些不准确的错误。

我之前错误地将上述一个步骤误认为:

关闭Filepath_1 \ AI_1.xlam

我不会尝试在任何地方这样做。

打开Filepath_2 \ CI_2.xlsm后,它会引用并显示Filepath_1 \ AI_1.xlam的VBA项目; 问题是Excel在任何时候都不会将Filepath_1 \ AI_1.xlam识别为打开的文件

事实上,即使我只是自己打开Filepath_1 \ AI_1.xlam(没有打开任何引用它的文件),Excel也不会将它识别为打开的文件,尽管它打开了文件的VBA项目。通过'识别',我的意思是如果我使用For Each循环来循环打开加载项(或打开工作簿),Filepath_1 \ AI_1.xlam永远不会出现。

我正在尝试做的事情看起来应该是非常可行的,但我却找不到任何方式做到这一点,不会让那个迷失的VBA项目开放......

0 个答案:

没有答案