怎样在一个Function 中返回一个 数组?怎样才能返回多个 数值?
如:Function aa()
Dim qx(3) As Double
.....
.....
......
aa=qx(3)
end function
我想在调用aaa() 时返回一个数组,系统提示提示:不能个数组负值!程序如下!
function aaa()
dim rx(3) as double
.....
.....
.....
rx=aa
end function
如:Function aa()
Dim qx(3) As Double
.....
.....
......
aa=qx(3)
end function
我想在调用aaa() 时返回一个数组,系统提示提示:不能个数组负值!程序如下!
function aaa()
dim rx(3) as double
.....
.....
.....
rx=aa
end function
rx=aa
end function改为
for i=0 to 3
rx(i)=aa(i)
next i
end function
Dim a As Integer
Private Sub Command1_Click()
Dim i As Integer
Dim m As Variant
a = 5
m = aaa(a)
For i = 0 To 3
Print m(i)
Next
End SubFunction aaa(ByVal NewValue As Integer) As Variant
Dim x(3) As Integer
Dim i As Integer
For i = 0 To 3
x(i) = NewValue + i
Next
aaa = x
End Function
Dim b(2) As Integer
b(0) = 0
b(1) = 1
b(2) = 2
a = b
End FunctionPrivate Sub Command1_Click()
Dim c() As Integer
Dim d As Integer
c = a
d = c(1)
End Sub
aaa()
在函数中执行对aaa的赋值Private aaa(100) As String
Public Function a()
aaa(1) = "a"
End FunctionPrivate Sub Command1_Click()
a
MsgBox aaa(1)
End Sub
Private Sub Command1_Click()
Dim i As Integer
Dim str2() As String
str2 = 返回数组
For i = 0 To UBound(str2) - 1
Debug.Print str2(i)
Next
End Sub
Function 返回数组() As String()
Dim str1() As String
str1 = Split("a,b,c,d,e", ",")
返回数组 = str1
End Function返回多个值,或者使用返回数组,或者就定义几个全局变量,在函数中赋值
Dim a As Integer
Private Sub Command1_Click()
Dim i As Integer
Dim m As Variant
a = 5
m = aaa(a)
For i = 0 To 3
Print m(i)
Next
End SubFunction aaa(ByVal NewValue As Integer) As Variant
Dim x(3) As Integer
Dim i As Integer
For i = 0 To 3
x(i) = NewValue + i
Next
aaa = x
End Function
这个做法是正确的~揭贴
Option ExplicitDim strArr() As String'返回数组的函数
Private Function TestFun() As String()
Dim strArrTmp() As String
ReDim strArrTmp(1) As String
strArrTmp(0) = "Hello!"
strArrTmp(1) = "Nice to meet you!"
TestFun = strArrTmp
End FunctionPrivate Sub Form_Load()
strArr = TestFun
MsgBox strArr(0) & vbCrLf & vbCrLf & strArr(1), vbOKOnly Or vbInformation
End Sub
***
End Function
Dim qx(3) As Double
qx(0)=2.0
.....
......
aa=qx
end function
我想在调用aaa() 时返回一个数组,系统提示提示:不能个数组负值!程序如下!
function aaa()
dim rx() as double
.....
.....
.....
rx=aa
end function
Erase arryT
redim arryT(2)
arryT(0)='a'
arryT(1)='b'
arryT(2)='c'
end sub调用:
dim zz() as string
?debug.print zz(0)
从一个函数返回一组值是可能实现的。例如,从一个函数返回一组字节而不必将其先转换为一个字符串然后再转换回来。下面是一个返回字节数组的函数的简单示例:Private Sub Form_Load()
Dim b As Byte
Dim I As Integer
Dim ReturnArray() As Byte
i = Cbyte(54)
ReturnArray() = ArrayFunction(b)
For i = 0 To Ubound(ReturnArray)
Debug.Print ReturnArray(i)
Next
End SubPublic Function ArrayFunction(b As Byte) As Byte()
Dim x(2) As Byte
x(0) = b
x(1) = b + CByte(200)
x(2) = b + b
ArrayFunction = x
End Function
从一个函数返回一组值是可能实现的。例如,从一个函数返回一组字节而不必将其先转换为一个字符串然后再转换回来。下面是一个返回字节数组的函数的简单示例:Private Sub Form_Load()
Dim b As Byte
Dim I As Integer
Dim ReturnArray() As Byte
i = Cbyte(54)
ReturnArray() = ArrayFunction(b)
For i = 0 To Ubound(ReturnArray)
Debug.Print ReturnArray(i)
Next
End SubPublic Function ArrayFunction(b As Byte) As Byte()
Dim x(2) As Byte
x(0) = b
x(1) = b + CByte(200)
x(2) = b + b
ArrayFunction = x
End Function在运行以上示例后, ReturnArray() 是一个三元素数组,其中包含了分配给 ArrayFunction 中数组的值。注意,Exit Function 语句将一个数组作为参数传递;且数组的数据类型必须和函数的数据类型相同(在本例中是字节)。因为这是一个函数调用,传递数组时不必带括号。注意 尽管可以通过赋值给另一个数组(ArrayFunction = x())来返回一个数组,但出于性能方面的考虑,并不推荐使用这种方法。必须为返回数组的函数指定一个类型;这个类型可以是 Variant。这样一来,Function X() As Variant() 是有效的而 Function X() As () 将失败。当调用一个返回数组的函数时,用来保存返回值的变量也必须是一个数组,而且其数据类型必须和函数相同,否则将显示一个“类型不匹配”的错误。