gpt4 book ai didi

VBA通过.onAction传递参数

转载 作者:行者123 更新时间:2023-12-04 13:39:03 27 4
gpt4 key购买 nike

这是我的子模样:

Sub InsertRowWithContent(rowNo As Long)

这是我的.onAction:
.OnAction = "'InsertRowWithContent""" & C & """'"

C是先前声明的Long变量。

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

最佳答案

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

.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
    ActionControl与Access下的 ActiveControl非常相似(如果不相同):它是最后单击的控件。

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

    *** :-)

    关于VBA通过.onAction传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25097756/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com