在VB中如何在function中按地址传递数组?

我先定义了function
如下:function fft(ByRef R() As Single,ByRef IX() As Single, ByVal m As Integer)
然后在sub中调用
如:Call fft(Rx,Ix,12)
RX,IX是定义的数组名
但调试时却它提示错误:类型不匹配:缺少数组或用户定义类型
请高手指点
调用时call fft(Rx(),Ix(),12)也会出现同样的问题。

第1个回答  2011-03-01
把你定义的function函数改为sub过程,问题就解决了,因为function函数在vb中不能直接用call调用,只能作为表达式或表达式的一部分出现
就是把你定义的
function fft(ByRef R() As Single,ByRef IX() As Single, ByVal m As Integer)
改为
sub fft(ByRef R() As Single,ByRef IX() As Single, ByVal m As Integer)
第2个回答  2011-03-01
我一般习惯是这样弄的,你看看行不行。
function fft(ByRef R As Single,ByRef IX As Single, ByVal m As Integer)
Call fft(Rx(0),Ix(0),12)追问

这样也不行,提示ByRef参数类型不符

追答

我试过是没有问题的呀,你确定RX,IX是数组?

Private Sub Command1_Click()
Dim Rx(10) As Single
Dim IX(10) As Single
MsgBox fft(Rx, IX, 12) & "," & Rx(1)
End Sub

Public Function fft(ByRef R() As Single, ByRef IX() As Single, ByVal m As Integer) As Integer
R(1) = 100
fft = 122
End Function

本回答被提问者采纳
第3个回答  2011-03-01
是不是应该把rx,lx数组定义与function中一样的类型
相似回答