从函数中返回多个值的方法

原文: http://blog.csdn.net/testing_is_believing

第一种方法是利用全局变量,因此根本不用返回,只要直接给全局变量赋值即可。

例:

Dim intNumber_1: intNumber_1 = 40

Dim intNumber_2: intNumber_2 = 80

 

Public Sub PassValues

    intNumber_1 = intNumber_1/4

    intNumber_2 = intNumber_2/4

End Sub

 

PassValues

 

MsgBox "intNumber_1 = " & intNumber_1 &_

    vbLf & "intNumber_2 = " & intNumber_2

 

 

第二种方法是用返回一个Dictionary集合的方式来返回多个值。

例:

Public Function PassValues(ByVal Num_1, ByVal Num_2)

    Set oDict = CreateObject( "Scripting.Dictionary" )

 

    With oDict

        .Add "Num_1", Num_1/4

        .Add "Num_2", Num_2/2

    End With

 

    Set PassValues = oDict

End Function

 

Set colNumbers = PassValues(40,80)

 

MsgBox "intNumber_1 = " & colNumbers.Item("Num_1") &_

    vbLf & "intNumber_2 = " & colNumbers.Item("Num_2")

 

 

第三种方法是用返回一个数组的方式来返回多个值。

例:

Public Function PassValues(ByVal Num_1, ByVal Num_2)

    Dim arrArray: ReDim arrArray(2)

 

    arrArray(0) = Num_1/4

    arrArray(1) = Num_2/2

 

    PassValues = arrArray

End Function

 

arrNew = PassValues(40,80)

 

MsgBox "intNumber_1 = " & arrNew(0) &_

    vbLf & "intNumber_2 = " & arrNew(1)

 

 

第四种方法是将需要返回的值连接到一个字符串来返回,这种方法要求接收数据的调用者需要用Split来切割出一个个数据。

例:

Public Function PassValues(ByVal Num_1, ByVal Num_2)

    Num_1 = Num_1/4

    Num_2 = Num_2/2

 

    PassValues = Num_1 & "," & Num_2

End Function

 

sNum = PassValues(40,80)

 

MsgBox "intNumber_1 = " & Split(sNum, ",")(0) &_

    vbLf & "intNumber_2 = " & Split(sNum, ",")(1)

 

 

第五种方法是通过ByRef关键字指定参数为引用,这种方法与用全局变量的方法类似,也是直接修改值,不同返回。

例:

Dim intNumber_1: intNumber_1 = 40

Dim intNumber_2: intNumber_2 = 80

 

Public Sub PassValues(ByRef Num_1, ByRef Num_2)

    Num_1 = Num_1/4

    Num_2 = Num_2/2

End Sub

 

PassValues intNumber_1, intNumber_2

 

MsgBox "intNumber_1 = " & intNumber_1 &_

    vbLf & "intNumber_2 = " & intNumber_2


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值