通过代码添加模块

我有一个包含macros的主工作簿,可以打开另一个包含需求预测的工作簿。 通过macros打开的工作簿是从客户门户下载的,并且每天都是新的,而没有事先编辑的可能性。

macros然后遍历信息并创build新的可读和更直观的工作表。 但是,在这些工作表中的一些上,我想添加一些事件驱动的代码来提供鼠标移动或select单元格时的工具提示。

有没有可能(没有安装从香草Excel 2010加载项)将代码添加到在macros期间创build的工作表对象?

处理的工作簿的布局或多或less是静态的,所以我想知道是否应该创build一个模板文件,然后将input复制到它。 这将允许我在添加数据之前对事件进行编码。 这是最好的可能吗?

正如丹指出的那样,您可以使用Application.VBE.ActiveVBProject以编程方式将代码模块添加到工作簿。 但是这样做需要更加宽松的macros安全设置(默认设置为不可信),这是不推荐的。

当我必须做类似的事情时,我使用三个工作簿:

  1. 包含工作簿的数据
    • 这本书没有macrosfunction
  2. 包含必要macros的模板工作簿
  3. 启用macros的工作簿以促进转换。

使用工作簿#3打开工作簿#1并将其数据复制到工作簿#2。 保存工作簿#2的副本并closures它。 根据需要重复这个过程。

这不是最漂亮的解决scheme,但它保持你的代码模块化。