VBA通过.onAction传递参数

公正

这是我的子模样:

Sub InsertRowWithContent(rowNo As Long)

这是我的.onAction:

.OnAction = "'InsertRowWithContent""" & C & """'"

C是先前声明Long变量。

它说找不到宏。在添加参数之前工作正常!

peter_the_oak

我已成功使用以下语法传递了参数:

.OnAction = "=InsertRowWithContent(" & C & ")"

注意事项:

  • C很长。因此,不要添加配额,就像您在代码中调用Sub一样。
  • OnAction计算一个表达式。因此,根据我的经验,该表达式需要一个等号,并且就我而言,它必须是一个函数。只有自动本地回调才是subs。

编辑

我上面的答案以Access为背景。Djikay的答案可以在Excel中正常工作。但是,经过一番挖掘之后,我安静地确定,只是Word无法理解这些语法中的任何一种。Word VBA无法将参数传递给OnAction语句中的子项至少暂时最好接受这一点。

但是以下是Word(2010)的定义:

创建命令栏和按钮。对于OnAction,仅传递的名称Sub但是使用按钮的Parameter属性。

' Add bar
Set cdb = Application.CommandBars.Add("SomeTest", , False, False)
cdb.Visible = True

' Add button
Set cbb = cdb.Controls.Add
cbb.Caption = "PressMe"
cbb.OnAction = "TheCallback"
cbb.Parameter = 456

然后,通过CommandBars.ActionControl.Parameter表达式访问参数

Public Sub TheCallback()

  MsgBox "The parameter passed is: " & CommandBars.ActionControl.Parameter

End Sub

ActionControlActiveControlAccess中的内容非常相似(如果不相同):最后单击的控件。

资料来源:http : //www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_24982922.html

* phuu * :-)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章