寻找动态导入/执行/删除excel VBA模块的问题

时间:2017-06-18 01:21:30

标签: excel-vba vba excel

要点: 所以我有一份已分发的工作簿,有时需要更新。经过一些研究和调查,我选择了工作簿来导入一个联网的.bas文件(Visual Basic代码模块),执行模块的代码来更新所说的工作簿,最后在完成后删除模块。

问题: 我想知道这个方法是否存在任何问题,因为与加载项相比,它似乎工作起来太容易实现。

我的代码很简单,在workbook_open事件中导入并运行“update”模块:

1)VBproject.vbcomponents.Import MyModule

2)执行MyModules代码

3)VBproject.vbcomponents.remove MyModule

(2)和(3)在另一个子程序中完成,否则导入后无法识别模块的方法,无法使用。

提前感谢您可能遇到的任何问题。

如果问题太模糊或开放式结束,请告知我,我会将其删除,或者我可以提供进一步的细节。

先谢谢你们

1 个答案:

答案 0 :(得分:0)

我能想到的主要问题是,为了实现这一目标,您需要用户接受Trust access to the VBA project object model

他们可能不会,合理地或被禁止这样做,因为它涉及一些安全风险。

想象一下有人成功删除了与你的名字/地点相同的恶意.bas文件。您需要对此采取措施,并说服用户,特别是安全管理员......