Excel VBA – 如何在单击时在多个macros上执行命令button调用?

我正在尝试在Excel VBA中编写一个命令button,可以根据单元格的string值调用特定的macros。 我以为我可以只使用有条件的“if”语句,但程序中有一个错误。

例如,到目前为止我有:

Private Sub CommandButton1_Click() If Range("F3").Select = "Retirement Age" Then Call NewRA End If End Sub 

当单元格F3等于“退休年龄”时,我想让Button运行名为“NewRA”的macros。 我怎样才能写适当的代码呢? 提前致谢。

首先,我推荐使用Range("F3").Value而不是Range("F3").Select

从那里,如果你打算有超过两个脚本挂钩到这个button,我会阅读Select Case结构。 这是一个MSDN链接: http : //msdn.microsoft.com/en-us/library/cy37t14y.aspx

例如:

 '... do your setup here Select Case CStr(Range("F3").Value) '<~ convert whatever is in cell F3 to a String Case "Retirement Age" Call NewRA Case "Another String" Call AnotherStringScript Case "Another, Even Cooler String" Call AnotherEvenCoolerString '... Case Else Msgbox ("Hey! The value in this cell doesn't match a script!") End Select 

您可以使用Range("F3").valueRange("F3").value2Range("F3").text ,甚至没有点Range("F3") ,但“永不”使用.select.activate (除非没有其他select,这在VBA中很less见)