单击另一个命令按钮,单击另一个工作表中的CommandButton

时间:2010-11-12 16:56:03

标签: database excel vba excel-vba

我在不同的表格中有几个命令按钮。现在我希望用户能够在需要时立即运行。因此,我想使用一个新的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

我是新手,所以我真的很赞赏你的帮助!

谢谢!

2 个答案:

答案 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个消息。

您可以将错误消息附加到帖子中吗?