3

我有一个包含宏的主工作簿,该宏打开另一个包含需求预测的工作簿。通过宏打开的工作簿是从客户门户下载的,并且每天都是新的,不可能事先对其进行编辑。

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

是否有任何可能性(无需从 vanilla Excel 2010 安装附加组件)将代码添加到在宏期间创建的工作表对象?

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

4

1 回答 1

1

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

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

  1. 包含工作簿的数据
    • 这本书没有宏功能
  2. 包含必要宏的模板工作簿
  3. 启用宏的工作簿以促进过渡。

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

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

于 2013-03-07T16:17:38.327 回答