4

谁能向我解释为什么,在 MS-Access 2007 表单上的按钮的 VBA 代码中,这会给出错误“编译错误:类型不匹配:预期数组或用户定义类型”

Private Sub Button_Click()
    Dim Arr() As Integer
    Foo (Arr())
End Sub

Private Sub Foo(Arr() As Integer)
    Me.Field.Value = "Foo"
End Sub

但这编译得好吗?

Private Sub Button_Click()
    Dim Dummy
    Dim Arr() As Integer
    Dummy = Bar (Arr())
End Sub

Private Function Bar(Arr() As Integer)
    Me.Field.Value = "Bar"
End Function

我正在编写的函数/子例程不返回任何内容,但我无法编译它,除非我将函数调用的返回值分配给一个虚拟变量,就像上面的 Bar 函数一样。

4

1 回答 1

5

如果您希望在参数周围使用括号,则必须使用 Call,因此请跳过括号:

Private Sub Button_Click()
    Dim Arr() As Integer
    ''No brackets
    Foo Arr()
    ''Or 
    ''Call Foo(Arr())
End Sub

Private Sub Foo(Arr() As Integer)
    Me.Field.Value = "Foo"
End Sub
于 2012-06-20T20:05:16.703 回答