使用VBA代码和button将工作表移动到新的工作簿

我有一个工作表,macros和button。 我想将该工作表复制到其他工作簿,以便macros可以与新工作簿中的数据一起使用。

我的问题是,当我将工作表复制到一个新的工作簿,macros随附,但工作表上的button仍然指向原始工作簿中的macros。 您必须右键单击“分配macros”并select当前工作簿中的macros。

是否有一个属性设置告诉Excel中的button在新的工作簿中使用macros而不是旧的工作簿?

您可以在您的macros中包含一行,重新将控件分配给其自己的工作簿中的macros,而不是原始工作簿。

你可以做的只是logging分配macros的行为,例如:

ActiveSheet.Shapes.Range(Array("Button 1")).Select Selection.OnAction = "Macro1" 

然后摆脱烦人的“select”的东西:

 ActiveSheet.Shapes.Range(Array("Button 1")).OnAction = "Macro1" 

在那里,你有它。 当然,button和macros的名称随着工作簿的不同而有所不同,但是会更接近于此。

你的问题有些模糊。 我会猜测。

你必须:

  1. 确保要运行的Sub实际上包含在Worksheet以进行复制。 按Alt + F11打开VB编辑器,您将在左侧看到工作表和其他模块。

  2. 检查代码,并确保所有对macros的引用都没有以任何Sheet / Workbook名称作为前缀。