永发信息网

VB 怎么 在自定义函数中,返回多个值?请举例说明

答案:2  悬赏:20  手机版
解决时间 2021-03-31 15:55
VB 怎么 在自定义函数中,返回多个值?请举例说明
最佳答案
不定义全局变量,根本不可能做到的你的要求。
你用Sub就必须要定义全局公有变量。
★:专业定制各种小软件,小型数据管理操作系统
★:包售后 1 年(不含新增功能),6×18小时服务。实时解决问题!追问是可以的啊
你看仔细看我题目。以前用过的,但就是想不起来。
不用定义变量,也不用像1楼那样的形貌返回的。追答我以6年的VB程序员经验告诉:
    没有!


@评论者  自定义类型也是要全局定义的啊?不是吗?


我好像知道你的意思了。是这样吧
Private Type mytype
    c As Double
    s As Double
End Type

Private Function SubN(r As Double) As mytype
    SubN.c = 2 * 3.14 * r
    SubN.s = 3.14 * r ^ 2
End Function

Private Sub Command1_Click()
    MsgBox SubN(6).s
End Sub追问哦,我知道了
全部回答
Sub 按钮1_Click()
    Dim 周长 As Double, 面积 As Double, 半径 As Double
    周长 = 0
    面积 = 0
    半径 = 15#
    Call SubN(周长, 面积, 半径)
    MsgBox 周长 & " " & 面积
End Sub
Sub SubN(ByRef 周长参数, ByRef 面积参数, ByVal 半径参数)
    If 半径参数 < 0 Then
        周长参数 = 0
        面积参数 = 0
    Else
        周长参数 = 2 * 3.14 * 半径参数
        面积参数 = 3.14 * 半径参数 * 半径参数
    End If
End Sub
 以上代码是在Excel的VBA中调试的,可以满足的要求。追问可以不带参数吗后面两个参数吗?只传递过去一个半径值
引用时,
msgbox subN(r) 就能得到结果追答
如果只是要msgbox subN(r)就能得到结果:Sub 按钮1_Click()
    Dim 半径 As Double
    半径 = 15#
    MsgBox SubN(半径)
End Sub
Function SubN(ByVal 半径参数) As String
    Dim 周长参数 As Double, 面积参数 As Double
    周长参数 = 0
    面积参数 = 0
    If 半径参数 < 0 Then
        周长参数 = 0
        面积参数 = 0
    Else
        周长参数 = 2 * 3.14 * 半径参数
        面积参数 = 3.14 * 半径参数 * 半径参数
    End If
    SubN = "周长=" & 周长参数 & "  " & "面积=" & 面积参数
End Function追问返回值不要自己分割,要返回来就是两个值,两个变量追答
1、Function返回数组Private Sub Command1_Click()
    Dim 半径 As Double
    半径 = 15#
    Dim 结果
    结果 = SubN(半径)
    MsgBox 结果(0) & " " & 结果(1)
End Sub
Function SubN(ByVal 半径参数 As Double) As Double()
    Dim 周长参数 As Double, 面积参数 As Double
    Dim 结果参数(1) As Double
    周长参数 = 0
    面积参数 = 0
    If 半径参数 < 0 Then
        周长参数 = 0
        面积参数 = 0
    Else
        周长参数 = 2 * 3.14 * 半径参数
        面积参数 = 3.14 * 半径参数 * 半径参数
    End If
    结果参数(0) = 面积参数
    结果参数(1) = 周长参数
    SubN = 结果参数
End Function
 
2、Sub中传入一个参数,在Sub内修改全局变量Public 周长 As Double
Public 面积 As Double
Private Sub Command1_Click()
    Dim 半径 As Double
    半径 = 15#
    Call SubN(半径)
    MsgBox 周长 & " " & 面积
End Sub
Sub SubN(ByVal 半径参数)
    If 半径参数 < 0 Then
        周长 = 0
        面积 = 0
    Else
        周长 = 2 * 3.14 * 半径参数
        面积 = 3.14 * 半径参数 * 半径参数
    End If
End Sub
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
菲律宾语翻译 跪了!谢谢!求帮助啊
初学者怎样看懂K线图 云交易新手如何快速看懂
tmd百度网盘真恶心,10m网速下载限制到200kb
描写小女孩削槐花句子
0.5×(6.7-4.6)÷5简算
壮士断腕的决心 刮骨疗毒的勇气? 背水一战的
常见的轻质复合实芯墙板都有哪些
“这是城市的空气”有带有这句歌词的歌吗
运用社会意识有关知识说明w村为什么要把祠堂
交警在路面巡查时如何盘查可疑车辆
广增13线全程花费多少时间?
剑三藏剑跟宠任务物品猞猁喂养记录扔了少了一
如果在地球史上,金刚真的存在,算不算是战斗
从我记事起 英语怎么说
脸上被人打淤青怎么消除?
推荐资讯
做梦梦见一条快要冻死的大黄狗被我救了
有谁知道床的尺寸 7尺长宽6.5是多大
PS中将图片dpi从72改到300 又相应减小了文档
如何去除棉花中残留的地膜
海天管儿怎么样,我看有朋友用的,网上也有人
凉生初雨的意思是什么
hd4真空断路器和VD4的区别主要是什么
风行其所不得不行,止其所不得不止,为吹拂而
问: 30 美国高中物理题,8,9,10,
有人帮忙解释下什么是赵国还有赵国人吗
张可聊是以前万源领导成员吗
MOVADO摩凡陀手表的型号
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?