VB 一个函数传回多个值

'●用Function当成子程序的一个好处,就是Function本身可以传回一个值到上一层呼叫的子程序里,但问题来了,若为了工作上的需要,想一次传回一个以上的值,那该怎么办?Private Sub Command1_Click()MyReturn 5,6End SubPrivate Function MyReturn(X,Y) As LongA = X + YB = X - YC = X * YD = X / Y'想传回A、B、C、D四个数值回去,怎么写?End Function'●这是一个基本的观念问题,子程序与子程序间的传值有ByVal与ByRef两种,ByVal是两个子程序间的传值放在不同的内存位置,而预设的ByRef则是将传值放在同一个内存位置上,故这一点可以拿来利用,可将上式改写成:Private Sub Command1_Click()MyReturn 5,6,Ans1,Ans2,Ans3,Ans4MsgBox "答案分别是" & Ans1 & "," & Ans2 & "," & Ans3 & "," & Ans4End SubPrivate Function MyReturn(X,Y,A,B,C,D) As LongA = X + YB = X - YC = X * YD = X / YEnd Function'●或是把资料作成Variant型态数组传回:Private Sub Command1_Click()Ans = MyReturn(5,6)MsgBox "答案分别是" & Ans(0) & "," & Ans(1) & "," & Ans(2) & "," & Ans(3)End SubPrivate Function MyReturn(X,Y) As VariantMyReturn = Array(X + Y,X - Y,X * Y,X / Y)End Function

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...