| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 865 人关注过本帖
标题:过程调用问题
只看楼主 加入收藏
liangwenbc
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
帖 子:168
专家分:174
注 册:2008-6-11
收藏
得分:0 
Sub ab(number())
    Dim max
    Dim min
    max = number(0)
    min = number(0)
    For Each x In number
        If max < x Then max = x
        If min > x Then min = x
    Next x
Print "最大数是:"; max; "最小数是:"; min
End Sub
Private Sub Form_Load()
Dim m(3) As Integer
For i = 0 To 2
    m(i) = InputBox("请输入:")
Next i
Call ab(m())
End Sub
图片附件: 游客没有浏览图片的权限,请 登录注册


qq7434391
2011-04-07 00:51
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30047
注 册:2008-10-15
收藏
得分:0 
'调试通过了的程序
Private Sub ab(number() As Integer)      '如果不加类型,那么要求 传进 Variant 类型的数组,而你传进来的是 Integer 类型,自然报类型不匹配。
    Dim max
    Dim min
    max = number(0)
    min = number(0)
    For Each x In number
        If max < x Then max = x
        If min > x Then min = x
    Next x
Print "最大数是:"; max; "最小数是:"; min
End Sub

Private Sub Form_Click()
Dim m(2) As Integer                   '与你要输入的数据个数一样,不要定义大了,否则最小值就是 0 。
For i = 0 To 2
    m(i) = InputBox("请输入:")
Next i
Call ab(m())
End Sub

授人于鱼,不如授人于渔
早已停用QQ了
2011-04-07 08:13
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
原来这样!

   唯实惟新 至诚致志
2011-04-07 08:28
liangwenbc
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
帖 子:168
专家分:174
注 册:2008-6-11
收藏
得分:0 
其实ab m() 也可以调用 当去掉关键字Call
书上说的

qq7434391
2011-04-07 10:55
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:0 
Option Explicit

Private Sub Form_Load()
    Me.AutoRedraw = True
    Dim m(), i As Long
    ReDim m(0 To 2)
    For i = 0 To 2
         m(i) = Val(InputBox("请输入:"))
    Next i
    ab m()    '这句有问题,要么你改上面的函数部分,要么改这里。建议改上面的。
End Sub

'Sub ab(ParamArray number())           '这里是要求传递 任意多个参数,但不能把整个数组传进去。
Sub ab(number())                      '要求传递数组进来。
     Dim max
     Dim min
     Dim x
     max = number(0)
     min = number(0)
     For Each x In number
         If max < x Then max = x
         If min > x Then min = x
     Next x
Print "最大数是:"; max; "最小数是:"; min
End Sub
'结贴了吗,也就是出结果了?
2011-04-07 11:08
zhuiis
Rank: 4
等 级:业余侠客
威 望:1
帖 子:201
专家分:286
注 册:2008-11-8
收藏
得分:0 
花了我半个小时,就为了给你回贴,希望能看得懂!!

Function MaxMin(数字 As String, 分隔符 As String) As String
'判断是否有分隔符--------------------------------
If InStr(数字, 分隔符) < 1 Then
MsgBox "数字中没有包含:“" & 分隔符 & "”分隔符"
Exit Function
End If
Dim Num() As Integer '声明数组
ReDim Num(0) '重定义数组
'循环截取数字------------------------------------
For i = 0 To UBound(Split(数字, 分隔符))
X = Split(数字, 分隔符)(i)
 If IsNumeric(X) = True Then '如果截取到的是为数字
 ReDim Preserve Num(UBound(Num) + 1) '动态增加数组
 Num(UBound(Num)) = X '将截取到的数字赋值到数组
 End If
Next i
'从小到大排序数字--------------------------------
For i = 1 To UBound(Num)
    For j = 1 To UBound(Num)
        If Num(i) < Num(j) Then
        X = Num(i)
        Num(i) = Num(j)
        Num(j) = X
        End If
Next j, i

MaxMin = "最大值是:" & Num(UBound(Num)) & "  最小值是:" & Num(1)

End Function

Private Sub Command1_Click()
MsgBox MaxMin("35-52-35-53-95-68-68-65-5--5", "-")
End Sub
2011-04-29 20:28
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
原来上面有了 = =

[ 本帖最后由 wube 于 2011-4-30 04:53 编辑 ]

不要選我當版主
2011-04-30 03:32
快速回复:过程调用问题
数据加载中...
 
   



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

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