在VBA中将表单对象作为类参数传递

时间:2014-04-28 04:55:12

标签: class vba access-vba

我有一个名为 cls_Utilitario 的课程,方法如下:

Public Function LimparCampos(arg_form As Object)
    Dim campo As Control

    For Each campo In arg_form.Controls
        With campo
            Select Case .ControlType
                Case acComboBox, acTextBox
                    .Value = Null
            End Select
        End With
    Next campo

    Set campo = Nothing
    Set arg_form = Nothing
End Function

我在表格中有以下代码:

Private Sub btnNovo_Click()
    Dim obj_Utilitario As cls_Utilitario

    Set obj_Utilitario = New cls_Utilitario
    obj_Utilitario.LimparCampos (Me.Form)

End Sub

如果我将参数更改为“对象”类型,为什么它不起作用?我也试过“Variant”和“Form”类型,但是没有成功。

提前致谢。

1 个答案:

答案 0 :(得分:5)

更改

obj_Utilitario.LimparCampos (Me.Form)

Call obj_Utilitario.LimparCampos (Me.Form)

或者

obj_Utilitario.LimparCampos Me.Form

在VBA中,如果您不将函数的返回值存储在变量中或使用关键字Call,则不得使用括号。