vb,函数,能不能返回两个值.

2024年11月22日 11:44
有5个网友回答
网友(1):

不但可以返回两个值,还可以更多。例如 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

网友(2):

可以。
函数值本身就是一个,在参数里可以使用一个或者几个“传址参数”。在函数过程里给传址参数赋值。
在主过程使用函数后,这些传址形参就获得了返回值,api函数一般都是这样做的(其函数值一般仅仅为是否成功的标志)。

网友(3):

vb返回只能有一个值,但是提出2种方法供你解决问题:
1.使用参数。例如调用时aaa(x,y)其中x,y是你给的参数,这个你在调用前要定义好,在aaa中你可以写 aaa(byRef x as 类型,byRef y as 类型),byRef指传引用,也就是说你在aaa的过程或者方法中改变x,或y时,你调用的地方定义的值就被改变了。
2.使用数组返回。返回值的类型如果是2个一样的,你就直接返回一个数组就好了。

网友(4):

不能返回两个变量,不过你可以用别的方法实现,比如说返回一个对象,或者一个结构体.这个对象或结构体包函了这两个变量.把这两个变量作为对象的属性传回来是可以的.

网友(5):

返回数组就可以了。
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

这样,就可以得到返回多个值的函数了。