Arrays VB宏中如何将数组作为参数传递
我试图将数组参数传递给VB子过程。如果将“()”与数组名一起使用,则会显示'Sub或Function not defined',如果将其删除,则会引发编译器错误,即“类型不匹配:应为数组或用户定义的类型” 我在谷歌上搜索过,但我无法找到这个问题的确切答案。另外,我对variant用法和Array()感到困惑,因为我看到的大多数示例都使用Varaint 道歉,如果这是非常基本的;我是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(
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