通过代码添加模块

时间:2013-03-04 08:27:43

标签: excel excel-vba vba

我有一个包含宏的主工作簿,该宏打开另一个包含需求预测的工作簿。通过宏打开的工作簿是从客户门户网站下载的,每天都是全新的,无需事先进行编辑。

宏然后遍历信息并创建新的可读和更直观的工作表。但是,在其中一些工作表中,我想添加一些事件驱动的代码,以便在鼠标悬停或选择单元格时提供工具提示。

是否有可能(不安装vanilla Excel 2010中的附加组件)将代码添加到宏中创建的工作表对象中?

处理后的工作簿的布局或多或少是静态的,所以我想知道是否应该创建模板文件然后将输入复制到其中。这将允许我在添加数据之前编码事件。这是最好的可能吗?

1 个答案:

答案 0 :(得分:0)

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

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

  1. 包含工作簿的数据
    • 本书没有宏功能
  2. 包含必要宏的模板工作簿
  3. 启用宏的工作簿以促进过渡。
  4. 使用工作簿#3打开工作簿#1并将其数据复制到工作簿#2中。保存工作簿#2的副本并关闭它。必要时重复此过程。

    这不是最漂亮的解决方案,但它可以使您的代码保持模块化。