VB 一个Function传回多个值

原创 2004年09月23日 20:54:00

解决Function只能传回一个值的问题<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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

 ●用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

'想传回ABCD四个数值回去,怎么写?

End Function


●这是一个基本的观念问题,子程序与子程序间的传值有
ByValByRef两种,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

VB 一个Function传回多个值

解决Function只能传回一个值的问题--------------------------------------------------------------------------------...
  • fangke
  • fangke
  • 2004年09月23日 20:54
  • 1136

vb函数参数的传递

实际上,形参的完整的语法格式应该为:[[Optional][ByVal|ByRef]|ParamArray] > [()][As 类型>][=缺省值>]ByVal表示该参数按值传递,简称值参。此时形参...
  • brave1
  • brave1
  • 2005年06月16日 12:18
  • 8806

VB 一个Function传回多个值

VB 一个Function传回多个值解决Function只能传回一个值的问题        ●用Function当成子程序的一个好处,就是Function本身可以传回一个值到上一层呼叫的子程序里,但问...
  • netcellsoft
  • netcellsoft
  • 2010年03月27日 21:16
  • 397

VB 一个函数传回多个值

'●用Function当成子程序的一个好处,就是Function本身可以传回一个值到上一层呼叫的子程序里,但问题来了,若为了工作上的需要,想一次传回一个以上的值,那该怎么办?Private Sub C...
  • cncco
  • cncco
  • 2010年06月23日 11:32
  • 1132

vb中函数的调用与参数的传递

形参如果是数组必须加小括号如:定义过程  sub em( pay() as Single)调用过程    em(xu())按值传递(ByVal):形参和实参占有不同的存储空间,调用过程改变了形参变量的...
  • xudepeng0813
  • xudepeng0813
  • 2010年12月14日 20:54
  • 1239

VB传入回调函数指针至VC编写的DLL函数中,应注意的几点

http://www.china-askpro.com/msg13/qa91.shtmlhttp://support.microsoft.com/kb/q181578/VB中,应注意以下几点:声明DL...
  • daichanglin
  • daichanglin
  • 2007年08月21日 15:10
  • 2415

细谈VB中的function程序应用问题!

在VB中function 程序如何应用?        Function 过程是由用户定义的独立的函数过程,与Sub字程序类似。Function 函数过程可读取参数,修改语句。可作为独立的基本语句调...
  • cjr15233661143
  • cjr15233661143
  • 2012年06月06日 21:14
  • 14668

【经典算法】:如何在一个函数里面返回多个值的实现

不要被标题党给忽悠的多么高端,我这里只想告诉大家一个非常简单的道理,非常简答 - -用指针!比如说在函数外定义了变量,然后传入该变量的地址,这样通过指针变换就能对该变量进行处理了,也就是变相的实现了给...
  • qq_23100787
  • qq_23100787
  • 2015年12月13日 23:39
  • 1376

数据搬运工-VB中参数(ByVal,ByRef)的传递

在作品展中纠结过,到现在的学生信息管理系统,每一次使用ByVal和ByRef都让我如入云里雾里,而它们却是数据传递的关键,只有彻底理解了它们,我们的程序代码才能够在传递的过程中避免很多逻辑和意想不到的...
  • wlccomeon
  • wlccomeon
  • 2012年08月28日 16:58
  • 5475

VB几种函数参数传递方法,Variant,数组,Optional,ParamArray

VB几种函数参数传递方法,Variant,数组,Optional,ParamArray  一) 过程的参数被缺省为具有 Variant 数据类型。   1)ByRef按  地址传递参数在 VB 中...
  • whchensir
  • whchensir
  • 2016年07月28日 00:33
  • 4085
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB 一个Function传回多个值
举报原因:
原因补充:

(最多只允许输入30个字)