我在不同的表格中有几个命令按钮。现在我希望用户能够在需要时立即运行。因此,我想使用一个新的CommandButton运行所有工作表中的所有CommandButton。但是我总是得到一条错误信息。我必须接近并且没有为我做好准备:
运行潜艇:
Private Sub CommandButtonX_Click()
run CommandButtonY_Click
run CommandButtonZ_Click
etc.
end sub
..没有任何事情发生
我的另一种方法是选择所有工作表并“激活命令按钮”,它总是被称为CommandButton1_Click但是我仍然不知道该怎么做
这是我的方法:
Sheets(Array("AA", "BB", "CC",etc.).Select
Sheets("AA").ActivateCall
Call CommandButton1_Click
End Sub
我是新手,所以我真的很赞赏你的帮助!
谢谢!
延
答案 0 :(得分:3)
这纯粹是一种设计观点,但我会尝试以不同的方式解决这个问题。
我的偏好是将我的子程序放在一个单独的模块中,只需从一个按钮调用它们即可。也就是说,_Click事件看起来像这样:
Private Sub Command1_Click()
Call DoSomeStuff
End Sub
在一个单独的模块中,我的所有潜艇都被相应地分组:
Sub DoSomeStuff()
Sheet1.Range("A1").Value = "Hooray for VBA"
End Sub
使用这种方法,你可以避免使用VBA有时很糟糕(在我看来)事件处理程序,如果它们被几个不同的按钮调用,你可以用适当的参数重新使用subs。
然后你的“主按钮”只调用所有潜艇:
Private Sub Command1_Click()
Call DoSomeStuff
Call DoSomeMoreStuff
Call DoTheFinalStuff
End Sub
答案 1 :(得分:2)
您收到了什么错误消息?
您正在运行哪个版本的Excel?
此代码在Windows 7上的Excel 2007中运行良好:
Sub Button1_Click()
MsgBox ("Hey there, I'm button 1")
End Sub
Sub Button2_Click()
MsgBox ("Hey there, I'm button 2")
End Sub
Sub Button3_Click()
MsgBox ("Hey there, I'm button 3")
End Sub
Sub Button4_Click()
Button1_Click
Button2_Click
Button3_Click
End Sub
我有3个按钮,每个按钮位于不同的工作表上,它们都显示标识它们的消息。第4个按钮也位于单独的工作表上,它会按预期显示其他3个消息。
您可以将错误消息附加到帖子中吗?