如何在 VB 宏中将数组作为参数传递

how to pass Array as paramenter in VB macro

我正在尝试将数组参数传递给 VB 子过程。如果我将“()”与数组名称一起使用,那么它会显示 'Sub or Function not defined' 如果它被删除,则会抛出编译器错误“类型不匹配:需要数组或用户定义的类型”。

Dim arypred() As Long
Dim dependlink() As Long

Main Sub()

.....
getPred arypred(), dependlink() 'Call to the sub procedure getPred

End Sub

Public Sub getPred(arypred() As Long, dependlink() As Long)

....

End Sub

我在谷歌上搜索过,但我无法为此找到确切的解决方案。另外,我对变体用法和 Array() 感到困惑,因为我看到的大多数示例都在使用 Varaint。

如果这个问题很基础,我们深表歉意;我是 VB 的新手,正在学习它.. 请帮助完成这项工作..

提前致谢。

这样做

Sub Main()
    Dim arypred() As Long = Nothing
    Dim dependlink() As Long = Nothing

    getPred(arypred, dependlink)
End Sub

Public Sub getPred(ByVal arypred() As Long, ByVal dependlink() As Long)


End Sub

传递数组时不必包含 () 符号,并确保在声明时为数组分配初始值。首先,分配 nothing.

建议: 如果您想在调用 getPred 方法后获取一个值,请使用 Public Function 代替 return 一个值。如果该方法仅在 class 中使用,则使用 Private 而不是 Public 除非它是一个模块。如果您希望两个变量(arypred 和 dependlink)在执行 getPred 方法后都为 return 新值,请使用 ByRef 而不是 ByVal。有关 ByRef 和 ByVal 的更多信息,click here and here.