要点: 所以我有一份已分发的工作簿,有时需要更新。经过一些研究和调查,我选择了工作簿来导入一个联网的.bas文件(Visual Basic代码模块),执行模块的代码来更新所说的工作簿,最后在完成后删除模块。
问题: 我想知道这个方法是否存在任何问题,因为与加载项相比,它似乎工作起来太容易实现。
我的代码很简单,在workbook_open事件中导入并运行“update”模块:
1)VBproject.vbcomponents.Import MyModule
2)执行MyModules代码
3)VBproject.vbcomponents.remove MyModule
(2)和(3)在另一个子程序中完成,否则导入后无法识别模块的方法,无法使用。
提前感谢您可能遇到的任何问题。
如果问题太模糊或开放式结束,请告知我,我会将其删除,或者我可以提供进一步的细节。
先谢谢你们
答案 0 :(得分:0)
我能想到的主要问题是,为了实现这一目标,您需要用户接受Trust access to the VBA project object model
。
他们可能不会,合理地或被禁止这样做,因为它涉及一些安全风险。
想象一下有人成功删除了与你的名字/地点相同的恶意.bas
文件。您需要对此采取措施,并说服用户,特别是安全管理员......