我刚接触VBA。这是我需要完成的工作:
某些工作表中某些单元格的值更改时,我需要运行代码。我刚刚学习了如何使用事件来做到这一点。 我遇到的问题是需要该事件的工作表不是从那里开始的,而是由宏生成的。另外,它们的数量可能会因数据而异(例如,有时宏可能会生成3,有时是10。并且会使用某些单元格值对它们进行重命名,因此名称每次都不同)。
据我所知,需要为对象本身(特定的工作表)编码触发更改单元格宏的事件。有没有一种方法可以对宏生成的工作表进行首次打开时不存在的工作表?
任何帮助将不胜感激!
答案 0 :(得分:1)
一个小把戏:
添加工作表的通常方法是使用如下代码:
Sheets.Add
这将为您提供新的工作表,但此新工作表将没有与之关联的事件代码。
相反,创建模板工作表(称为templ),并且在此模板工作表中包括所有必需的事件宏。现在,无需Add
创建新工作表,只需:
Sheets("templ").Copy after:=Sheets(Sheets.Count)
您将获得一个新的工作表,但附加了所有宏!