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

Arrays VB宏中如何将数组作为参数传递,arrays,vb.net,macros,parameter-passing,Arrays,Vb.net,Macros,Parameter Passing,我试图将数组参数传递给VB子过程。如果将“()”与数组名一起使用,则会显示'Sub或Function not defined',如果将其删除,则会引发编译器错误,即“类型不匹配:应为数组或用户定义的类型” 我在谷歌上搜索过,但我无法找到这个问题的确切答案。另外,我对variant用法和Array()感到困惑,因为我看到的大多数示例都使用Varaint 道歉,如果这是非常基本的;我是VB新手,正在学习它。。 请帮忙做这件事 提前谢谢。这样做吧 Sub Main() Dim arypred(

我试图将数组参数传递给VB子过程。如果将“()”与数组名一起使用,则会显示'Sub或Function not defined',如果将其删除,则会引发编译器错误,即“类型不匹配:应为数组或用户定义的类型”

我在谷歌上搜索过,但我无法找到这个问题的确切答案。另外,我对variant用法和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
返回值。如果该方法仅在类中使用,则使用
Private
而不是
Public
,除非它是一个模块。如果希望两个变量(arypred和dependlink)在执行
getPred
方法后返回新值,请使用
ByRef
而不是
ByVal
。有关ByRef和ByVal的更多信息,以及

谢谢MAC。我尝试了上面的解决方案,但它抛出了编译器错误,因为“数组参数必须是ByRef”。我试着用ByRef替换ByVal,但它也显示了调用行的语法错误:getPred(arypred,dependlink)您能包含所有重要的代码吗@kousalyarajan'因为问题可能出在代码的其他部分上。现在它运行良好。。问题在于数组变量的可见性。我将它们放在一个过程中,该过程调用procedure1,其中调用了gePred。公共次常态2D_过程(shp作为Visio.Shape)。。。。。。。。。。。getPred arypred(),dependlink()End Sub Public Sub getPred(ByRef arypred()长,ByRef dependlink()长)@kousalyarajan我明白了。祝你在剩下的代码中好运!:)
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