不但可以返回两个值,还可以更多。例如 4 个。
Private Sub Command1_Click()
Dim My1 As Boolean, a1 As Long, a2 As String, a3 As Long
My1 = MyFun(1,a1, a2, a3)
'显示返回的 4 个变量的值
Me.Cls
Me.Print My1
Me.Print a1
Me.Print a2
Me.Print a3
End Sub
Private Function MyFun(S as long ,a1 As Long, a2 As String, a3 As Long) As Boolean
MyFun = True
a1 = 100
a2 = "MyStr"
a3 = "200"
End Function
可以。
函数值本身就是一个,在参数里可以使用一个或者几个“传址参数”。在函数过程里给传址参数赋值。
在主过程使用函数后,这些传址形参就获得了返回值,api函数一般都是这样做的(其函数值一般仅仅为是否成功的标志)。
vb返回只能有一个值,但是提出2种方法供你解决问题:
1.使用参数。例如调用时aaa(x,y)其中x,y是你给的参数,这个你在调用前要定义好,在aaa中你可以写 aaa(byRef x as 类型,byRef y as 类型),byRef指传引用,也就是说你在aaa的过程或者方法中改变x,或y时,你调用的地方定义的值就被改变了。
2.使用数组返回。返回值的类型如果是2个一样的,你就直接返回一个数组就好了。
不能返回两个变量,不过你可以用别的方法实现,比如说返回一个对象,或者一个结构体.这个对象或结构体包函了这两个变量.把这两个变量作为对象的属性传回来是可以的.
返回数组就可以了。
Function aw(aa)
aak = aa
ReDim aa(3) As Integer
aa(0) = aak + 2
aa(1) = aak - 2
aa(2) = aak * 2
aa(3) = aak \ 2
Let aw = aa
End Function
举例:
Private Sub Command1_Click()
asd = aw(32)
End Sub
这样,就可以得到返回多个值的函数了。