| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 520 人关注过本帖
标题:[转载]VB 一个Function传回多个值
只看楼主 加入收藏
学习VB才2天
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1653
专家分:0
注 册:2006-5-4
收藏
 问题点数:0 回复次数:7 
[转载]VB 一个Function传回多个值

解决Function只能传回一个值的问题

--------------------------------------------------------------------------------

●用Function当成子程序的一个好处,就是Function本身可以传回一个值到上一层呼叫的子程序里,但问题来了,若为了工作上的需要,想一次传回一个以上的值,那该怎么办?

Private Sub Command1_Click()

MyReturn 5, 6

End Sub

Private Function MyReturn(X, Y) As Long

A = X + Y

B = X - Y

C = X * Y

D = X / Y

'想传回A、B、C、D四个数值回去,怎么写?

End Function

●这是一个基本的观念问题,子程序与子程序间的传值有ByVal与ByRef两种,ByVal是两个子程序间的传值放在不同的内存位置,而预设的ByRef则是将传值放在同一个内存位置上,故这一点可以拿来利用,可将上式改写成:

Private Sub Command1_Click()

MyReturn 5, 6, Ans1, Ans2 ,Ans3 ,Ans4

MsgBox "答案分别是" & Ans1 & "," & Ans2 & "," & Ans3 & "," & Ans4

End Sub

Private Function MyReturn(X, Y, A, B, C, D) As Long

A = X + Y

B = X - Y

C = X * Y

D = X / Y

End Function

●或是把资料作成Variant型态数组传回:

Private Sub Command1_Click()

Ans = MyReturn(5, 6)

MsgBox "答案分别是" & Ans(0) & "," & Ans(1) & "," & Ans(2) & "," & Ans(3)

End Sub

Private Function MyReturn(X, Y) As Variant

MyReturn = Array(X + Y, X - Y, X * Y, X / Y)

End Function

搜索更多相关主题的帖子: Function 传回 
2006-08-18 12:53
niu251110
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-8-18
收藏
得分:0 

sdfdsfdsfdsfsd

2006-08-18 12:56
niu251110
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-8-18
收藏
得分:0 
o
你好啊
你现在还好吗
2006-08-18 12:57
niu251110
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-8-18
收藏
得分:0 
你是怎么知道的啊
2006-08-18 12:57
niu251110
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-8-18
收藏
得分:0 

原来
你 在那啊
2006-08-18 12:58
leon2
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:731
专家分:0
注 册:2005-3-18
收藏
得分:0 
这是个技巧吧,一般一个函数只用来实现一项功能
2006-08-20 23:51
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 

一個很經典的例程應該是 ParamArray 參數,

Private Sub MultipleReturn(ParamArray myVars())
myVars(0) = 9
myVars(0) = 10
End Sub


Private Sub Command1_Click()
Dim a&, b&
a = 3: b=4
MultipleReturn a, b
End Sub


如此一來, 可以傳遞不固定數量的參數了


原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-08-21 01:42
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-21 08:31
快速回复:[转载]VB 一个Function传回多个值
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026813 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved