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").value
或Range("F3").value2
或Range("F3").text
,甚至没有点Range("F3")
,但“永不”使用.select
或.activate
(除非没有其他select,这在VBA中很less见)