在Excel 2016中,.onAction是一个事件处理程序,用于在用户单击或悬停在指定对象上时执行特定的操作。它可以用于按钮、菜单项或其他可交互的对象。
在VBA Excel中,可以通过.onAction传递参数来实现更灵活的操作。以下是一种实现方法:
Sub MyMacro(param1 As String, param2 As Integer)
' 执行操作,使用传递的参数
' 例如:将参数值写入单元格
Range("A1").Value = param1
Range("A2").Value = param2
End Sub
Sub AssignMacro()
' 为按钮或菜单项分配宏,并传递参数
Dim param1 As String
Dim param2 As Integer
param1 = "Hello"
param2 = 123
' 将按钮或菜单项的.onAction设置为宏,并传递参数
Application.CommandBars("MyMenuBar").Controls("MyButton").OnAction = "MyMacro(""" & param1 & """, " & param2 & ")"
End Sub
在上述代码中,我们首先定义了一个带有两个参数的宏(MyMacro)。然后,在AssignMacro过程中,我们定义了参数的值,并将按钮或菜单项的.onAction设置为调用该宏,并传递参数。
请注意,参数的类型和数量应与宏的定义相匹配。在传递参数时,我们使用双引号将字符串参数括起来,并使用逗号分隔多个参数。
这样,当用户单击或悬停在按钮或菜单项上时,Excel将执行指定的宏,并将传递的参数用于操作。
领取专属 10元无门槛券
手把手带您无忧上云