【问题标题】:VBA (Ms-Access) calling a memberfunction from a macroVBA (Ms-Access) 从宏调用成员函数
【发布时间】:2023-03-18 08:16:01
【问题描述】:

在 VBA (Access) 中,我使用公共函数“FromStart”创建了一个名为“ZFormHelperClass”的类模块

Public Function FromStart(ByVal name As String, Optional ByVal lfd As Long = InvalidLfd, Optional ByVal centerd As Boolean = False) As ZFormContainerClass

    'Do something

End Function

我在一个模块中使用一个公共函数作为这个类的构造函数:

Public Function ZFormHelper() As ZFormHelperClass

    Set ZFormHelper = New ZFormHelperClass

End Function

然后我尝试使用宏(“测试”)在“运行代码”(或“执行代码”)中调用此函数,如下所示:

=ZFormHelper.FromStart("Start", -1, True)

但它甚至不允许我保存宏(错误:德语版本:“函数名参数的值无效”)。我必须创建一个函数来做到这一点。

Function doStart()

    Call ZFormHelper.FromStart("Start", -1, True)

End Function

所以我想知道为什么会这样,是否有办法直接调用类函数而无需创建虚拟函数。

【问题讨论】:

  • 如果您能够创建和使用类模块,我不得不质疑为什么您需要涉及宏?
  • 我正在使用旧版软件。这个问题是重构的结果。在这种情况下,宏被命名为“Autokeys”,并在用户按下 crtl + Y 时调用
  • 顺便说一句。尝试从功能区按钮中的“OnAction”-Trigger 中调用该函数时,我遇到了同样的问题...
  • 啊,好吧。我认为正确的宏操作是 RunCode - 我找不到执行选项。您使用的是哪个版本的 Access?
  • @Minty:RunCode 似乎是正确的(在德语中,它的“Ausführen Code”字面意思是“执行代码”)。我正在使用 Office 16。删除 = 并没有太大变化。现在我可以保存宏,但是在启动它时,我得到一个错误:“找不到给定的名称“ZFormHelper””(+ 很多德语文本对我没有任何解释)。

标签: ms-access vba


【解决方案1】:

根据 Albert Kallal 的说法,您不能。

在这里查看他的评论MS Access RunCode Macro cannot find my procedure

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多