我有一个包含宏和按钮的工作表。我想将该工作表复制到其他工作簿,以便宏可以与新工作簿中的数据一起使用。
我的问题是,当我将工作表复制到新工作簿时,宏会附带它,但工作表上的按钮仍然指向原始工作簿中的宏。你必须右键单击"分配宏"并选择当前工作簿中的宏。
是否有属性设置告诉Excel中的按钮使用新工作簿中的宏而不是旧工作簿?
答案 0 :(得分:0)
您可以在宏中包含一行,将控件重新分配给自己的工作簿中的宏,而不是原始工作簿。
您可以做的只是记录分配宏的行为,例如:
ActiveSheet.Shapes.Range(Array("Button 1")).Select
Selection.OnAction = "Macro1"
然后摆脱讨厌的“选择”的东西:
ActiveSheet.Shapes.Range(Array("Button 1")).OnAction = "Macro1"
你有它。当然,按钮和宏名称取决于您的工作簿,但它将接近于此。
答案 1 :(得分:0)
你的问题有些模糊。我会猜测。
你必须:
确保要运行的Sub
实际包含在要复制的Worksheet
中。按Alt + F11打开VB编辑器,您将在左侧看到Sheet和其他模块。
检查代码,并确保所有对宏的引用都没有任何工作表/工作簿名称的前缀。
答案 2 :(得分:0)
这是我从TheSpreadsheetGuru获得的解决方案。我对其进行了修改,以接受一个工作表对象,以便您可以在有手柄的任何工作表上运行它。
[RestrictHttps]
public class ExampleController : Controller
{
// controller code goes here.
}