我正在尝试将数组参数传递给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的新手并且正在学习它。 请帮助完成这项工作..
先谢谢。
答案 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 here和here.