vb 输出自定义函数返回的数组值

code eg:
function aa() as integer
dim i as integer
dim dd (10) as integer
for i=1 to 10
dd(i)= i
next i
aa= dd
end function
private sub dovar( byref a() as integer)
dim j as integer
for j=1 to 10
msgbox a(j)
next j
private sub command1_click()
dim d
d= aa
call dovar(d)
end sub
我是的代码错了 ,但不知道错在了那里? 你如果知道 写一个 自定义函数 并返回一个数组,并将返回的数组的值 输出。 谢谢、、、、我的QQ是 175246808 再此 先谢过高手了。。呵呵 、

end sub

第1个回答  2012-02-06
楼上列位思路都很正确
你看你的aa函数:Function aa() As Integer,返回值是Integer变量,而不是Integer数组呀,
所以你dim d 然后d= aa的话,d也是Integer变量,但是dovar的参数要求是Integer数组,
于是VB就报错了呀。

VB里面函数返回值是数组的我不知道行不行,反正我们都不这么干,直接把参数设成byref不就行了嘛,所以人家帮你改成了Function aa(dd() As Integer) As Boolean,对吧
第2个回答  推荐于2016-12-05
过程dovar怎么没有
End sub呢?
另外:数组参数只能用ByRef关键字,即"引用"传递不是"值"传递,所以将第1个函数也改为过程吧!
修改如下:
Private Sub aa(ByRef a() As Integer)
Dim i As Integer
ReDim a(10) As Integer
For i = 1 To 10
a(i) = i
Next i
End Sub

Private Sub dovar(ByRef a() As Integer)
Dim j As Integer
For j = 1 To 10
MsgBox a(j)
Next j
End Sub

Private Sub command1_click()
Dim d() As Integer
Call aa(d())
Call dovar(d())
End Sub本回答被提问者采纳
第3个回答  2012-02-02
dim i as integer
sub a(a() as integer ) as integer
for i=1 to 10
a(i)= i
next i
end sub
private sub dovar( byref a() as integer)
for i=1 to 10
print a(i), '在FORM1窗体上输出A(I)
next
end sub
private sub command1_click()
dim d() as integer
call a(d())
call dovar(d)
end sub
第4个回答  2012-02-05
'基本没有改,类型错误的改了一下
Option Explicit
Function aa()
Dim i As Integer
Dim dd(10) As Integer
For i = 1 To 10
dd(i) = i
Next i
aa = dd
End Function
Private Sub dovar(a)
Dim j As Integer
For j = 1 To 10
MsgBox a(j)
Next j
End Sub
Private Sub command1_click()
Dim d
d = aa
Call dovar(d)
End Sub
第5个回答  2012-02-02
Function aa(dd() As Integer) As Boolean
Dim i As Integer
For i = 1 To 10
dd(i) = i
Next i
aa = True
End Function
Private Sub dovar(ByRef a() As Integer)
Dim j As Integer
For j = 1 To 10
MsgBox a(j)
Next j
End Sub
Private Sub command1_click()
Dim kk(10) As Integer
d = aa(kk())
Call dovar(kk)
End Sub

vb 输出自定义函数返回的数组值
你看你的aa函数:Function aa() As Integer,返回值是Integer变量,而不是Integer数组呀,所以你dim d 然后d= aa的话,d也是Integer变量,但是dovar的参数要求是Integer数组,于是VB就报错了呀。VB里面函数返回值是数组的我不知道行不行,反正我们都不这么干,直接把参数设成byref不就行了嘛,所以...

vb函数调用返回数组值
Me.AutoRedraw = True '持久图形的输出 i = 1 returnarray = arrayfunction(i)Print returnarray(1)End Sub Public Function arrayfunction(i As Integer) As Integer()Dim x(2) As Integer x(0) = i x(1) = i + 1 arrayfunction = x '把x赋值给函数arrayfunction End Function ...

VB中函数多个返回值问题
第一种,自定一个变量类型,里面含两个元素,一个x、一个y。处理坐标通常都这样。第二种,private function 函数(输入1 as **,输入2 as **,输入3 as **,输入4 as ***,输入5 as **,输入6 as **,输出1 as **,输出2 as **)as boolean 函数值是返回执行是否成功的逻辑值,大...

VB定义自定义函数的参数为数组,返回值也为数组
1,你自己定义的函数名是 x,那么调用问什么用 zpdj ?2,这个也没有什么作用?可以不要。

vb 如何保存和返回数组中的值
ReDim q1(1 To 1) '重定义数组 Open F For Input As #H '打开文件 Do If EOF(H) Then Exit Do Input #H, nStr '从文件中读出一行字符串 I = I + 1 ReDim Preserve q1(1 To I)q1(I) = Val(nStr)Loop Close #H '关闭文件 '下面是你显示数组数据的语句 '...End Sub '...

VB编写一个函数返回整型数组中的最大值
'假设以为数组:Private Sub Command1_Click()Dim arr(1 To 10) As Integer, i Cls For i = LBound(arr) To UBound(arr)Randomize arr(i) = Int(Rnd * 10000) + 1 Print arr(i);Next Print vbNewLine & "最大值:" & fc(arr)End Sub Function fc(arr)Dim i fc = arr(LBound(...

VB 导入文本数据作为一个二维数组的元素,用自定义的函数调用数组元素处 ...
Dim i As Integer i = 0 Open "c:\\1234.txt" For Input As #1 '打开文件读。Do While Not EOF(1) ' 循环至文件尾。i = i + 1 Input #1, dd(i, 1), dd(i, 2), dd(i, 3), dd(i, 4) '将数据读入数组变量。Loop Close #1 4,调用自定义函数,处理并输出 For i...

可以返回二维数组的vb自定义函数怎么写?
函数只能返回一个值,要想返回二维数组,就必须把二维数组用传址方式传给函数,那么函数运算时对数组的任何变化都立刻反映到数组中。如:private function f(a() as integer) as integer dim i as integer,j as integer for i=1 to 2 for j=1 to 3 a(i,j)=i^2+j^2 next j next i e...

VB数组函数返回值的问题,急
因为一个函数只有一个返回值,所以你必须把CPLXExtRoot作为参数以传址方式传入函数中才行,这样在运算过程中会把运算的结果放在数组 中,函数结束后,你直接用CPLXExtRoot()就行,因为值已经传入了。

vb函数可以返回数组吗 ?在线等
可以啊,比如:Function a()Dim s()ReDim s(3)s(0) = 1s(1) = 2s(2) = 3s(3) = 4a = sEnd Function调用方法举例:Dim x()x = a()MsgBox x(1)

相似回答