| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 806 人关注过本帖
标题:报错“子程序或函数不存在”
只看楼主 加入收藏
一池子墨水
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-3-13
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
报错“子程序或函数不存在”
Private Sub ns(arr As Variant)
  Dim l As Long, i As Long, j As Long
  For i = 0 To UBound(arr)
   For j = i + 1 To UBound(arr)
    If a(i) < a(j) Then
     Call nc(a(i), a(j))
     End If
    Next j
  Next i
  
For l = 0 To UBound(arr)
 Debug.Print arr(l)
 Next l
End Sub


Private Sub nc(a, b)
 Dim num As Integer
 num = a
 a = b
 b = num
End Sub


Private Sub Command1_Click()
Dim myarr As Variant
 myarr = Array(45, 68, 120, 31)
 Call ns(myarr)
End Sub
搜索更多相关主题的帖子: 子程序 
2017-03-13 20:48
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:7 
   If a(i) < a(j) Then
     Call nc(a(i), a(j))

这个a是从哪里冒出来的?

授人于鱼,不如授人于渔
早已停用QQ了
2017-03-13 22:02
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
收藏
得分:7 
Private Sub ns(arr As Variant)
  Dim l As Long, i As Long, j As Long
  For i = 0 To UBound(arr)
   For j = i + 1 To UBound(arr)
    If arr(i) < arr(j) Then
     Call nc(arr(i), arr(j))
     End If
    Next j
  Next i
  
For l = 0 To UBound(arr)
 Debug.Print arr(l)
 Next l
End Sub


Private Sub nc(a, b)
 Dim num As Integer
 num = a
 a = b
 b = num
End Sub


Private Sub Command1_Click()
Dim myarr As Variant
 myarr = Array(45, 68, 120, 31)
 Call ns(myarr)
End Sub
2017-03-15 09:06
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:7 
程序代码:
Dim myarr As Integer    '定义为整型数据更加合理,并且只能在通用部分定义

Private Sub ns(arr As Integer)
  Dim l As Long, i As Long, j As Long
  For i = 0 To UBound(myarr) - 1     'For i = 0 To UBound(arr)  数组 myarr 在其他过程调用,不能使用过程变量 arr
   For j = i + 1 To UBound(myarr)    'For j = i + 1 To UBound(arr)   同上
    If myarr(i) < myarr(j) Then      'If a(i) < a(j) Then    a(i) 与 a(j) 数组没有定义,不能使用
     Call nc(myarr(i), myarr(j))     'Call nc(a(i), a(j))    同上   '
     End If
    Next j
  Next i
  Me.Show
For l = 0 To UBound(arr)

 Debug.Print arr(l)

 Next l
End Sub

Private Sub nc(a, b)   '这个过程实际就是排序,将 myarr(i) 与 myarr(j) 分别传递给 a 与 b
 Dim num As Integer

 num = a

 a = b

 b = num
End Sub

Private Sub Command1_Click()

 myarr = Array(45, 68, 120, 31)   '为 myarr 数组赋值
 Call ns(myarr)    '调用 ns 过程
End Sub

收到的鲜花
  • for_vb2017-03-15 11:40 送鲜花  1朵   附言:好文章

请不要选我!!!
2017-03-15 11:23
快速回复:报错“子程序或函数不存在”
数据加载中...
 
   



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

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