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

时间:2015-07-30 06:58:56

标签: arrays vb.net macros parameter-passing

我正在尝试将数组参数传递给VB子过程。如果我使用'()'和数组名称然后它说'Sub或函数未定义',如果它被删除,那么它会抛出编译器错误为“类型不匹配:预期的数组或用户定义类型“。

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

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

道歉,如果这个问题非常基本;我是VB的新手并且正在学习它。 请帮助完成这项工作..

先谢谢。

1 个答案:

答案 0 :(得分:0)

这样做

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来返回值。如果该方法仅在课程中使用,则使用Private代替Public,除非它是一个模块。如果您希望在执行getPred方法后两个变量(arypred和dependlink)都返回新值,请使用ByRef而不是ByVal。有关ByRef和ByVal的更多信息,click herehere.