这感觉就像一个愚蠢的问题,但我不能弄清楚,所以这里去...VBA - 命令按钮点击子 - 当工作表中创建新的每次
我有,基于一个工作簿什么是输入到用户窗体,每次点击用户窗体上的命令按钮时创建一个新的工作表,并删除旧窗体。
这意味着,尽管新的工作表总是被赋予相同的名称(“结果”),但工作表编号每次都会增加;它目前正在调用自己的Sheet48,下一次运行它将会是Sheet49。
我想要做的是将一个命令按钮添加到该“结果”表,用户可以单击它们以将它们带到不同的工作表。我已经添加了一些代码到用户窗体中,它在“结果”工作表上创建命令按钮本身。我还没有写出能告诉它将用户带到另一张工作表的子文件,但我相信我可以毫无困难地做到这一点。
我的问题是我如何将sub分配给按钮,考虑到它所在的工作表不是永久的?我认为子应该进入一个标准模块,但是我所看到的所有例子都是以“CommandButton1_Click”或“CommandButton2_Click”开头的,并存储在表单对象本身中。看起来像这些数字1和2是指给定工作表上的命令按钮的顺序,但是大概是标准模块上的一个子将不知道要查看哪个工作表。
我希望这是有道理的 - 任何有用的解释将不胜感激!谢谢。
编辑: 这是我使用创建命令按钮并(试图)子分配给它的代码:
'Add a command button, which will allow users to jump to the full report
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
, DisplayAsIcon:=False, Left:=1025, Top:=130.5, Width:=160, Height:= _
400).Select
ActiveSheet.CommandButton1.Caption = "Click here to see the original report"
ActiveSheet.CommandButton1.WordWrap = True
ActiveSheet.CommandButton1.OnAction = "Module1.ButtonForOriginal" 'the sub works in isolation, but this line isn't assigning it.
任何人都可以看到任何问题吗? ButtonForOriginal子过程独立工作,所以它看起来像我只是不正确地调用它?
编辑2 - 我现在已经用不同的方法取得了正确的效果 - 如果您有兴趣,请参阅下面的答案。感谢那些帮助并让我走上正确道路的人!
使用新按钮,我实际上并没有添加新的工作表;我只想取消隐藏现有的一个。 –
对不起,按下发送太快... –
事件序列是 - Userform创建新工作表,其中还包含一个新按钮 - 单击新按钮将取消隐藏现有工作表。感谢您的建议 - 我会尝试,或者在我创建新按钮的用户表单代码中进行尝试,希望我理解正确! –