| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1289 人关注过本帖
标题:EXIT SUB的矛盾
只看楼主 加入收藏
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
结帖率:78.95%
收藏
 问题点数:0 回复次数:12 
EXIT SUB的矛盾
Private Sub Com1_Click()
If ListView1.ListItems.Count <= 0 Then
  MsgBox "没有输入", vbInformation, "提示"
  Exit Sub
End If
Form5.Show
End Sub
我有EXIT SUB
单从程序上说 MSG 跟后面的 SHOW 是矛盾的吧?
为什么我一运行,先有MSG,后面又跟着有SHOW呢
搜索更多相关主题的帖子: 矛盾 
2015-11-20 09:52
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
测试的没问题啊,测试代码:
Private Sub Command1_Click()
MsgBox 1
Exit Sub
MsgBox 2
End Sub


授人于鱼,不如授人于渔
早已停用QQ了
2015-11-20 10:20
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
回复 2楼 风吹过b
想不通哪里出问题
2015-11-20 10:24
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

我特意用了一个text来记录listview的count
实际结果是1。
但是问题是,如果是1,不会进入IF,不会有MSG
哪里出问题
2015-11-20 10:29
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
那你这样改吧,让代码二选一,看看那里的问题。
还有,你4楼的提示与1楼的代码不相符,检查一下是不是别的地方的提示,而不是这里的提示。
Private Sub Com1_Click()
If ListView1.ListItems.Count <= 0 Then
  MsgBox "没有输入", vbInformation, "提示"
'  Exit Sub
Else
  Form5.Show
End If
End Sub

授人于鱼,不如授人于渔
早已停用QQ了
2015-11-20 11:17
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
回复 5楼 风吹过b
那个提示内容是因为复制过来的时候有乱码,我重新输入时懒了下,少输了几个字

改了之后也是一样的结果,仍然是进入IF又SHOW
2015-11-20 11:33
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
这是你窗口刚启动时,有其他事件触发引起的。要看到你整个代码就好分析了,很多控件在窗口初始化时会触发一些事件,这些事件可能等候是预料不到的,就产生了预料不到的错误。

能编个毛线衣吗?
2015-11-20 11:41
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
回复 7楼 wmf2014
shangc.rar (29.92 KB)

复制上来有很多中文乱码,我还是打包吧
2015-11-20 11:58
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
回复 6楼 linandceline
改了后,还出现,那说明不是在这里触发的这个显示。

那你只能单步了,
你按 F8启动,然后一行一行的执行过去,如果一大段循环,可以到循环后面下个断点,然后按F5运行到断点停止,然后再继续 F8 ,单步下去。


授人于鱼,不如授人于渔
早已停用QQ了
2015-11-20 12:15
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
跟踪后,你的提示出现在这个部分:

Private Sub Form_Load()
Dim n As Integer

n = ListView1.ListItems.Count
If n <= 0 Then
  MsgBox "没有输入物料编码", vbInformation, "提示"
  Exit Sub
End If

是 Form5 的初始化部分,你总抓着前面的去弄,当然找不对。
---------------------------------------------
m = FormatDateTime(Now(), vbShortDate)
m = Left(m, 4)
n = Val(m)

Combo2.AddItem n - 1 & "年"
Combo2.AddItem n & "年"
Combo2.AddItem n + 1 & "年"

For i = 1 To 12
  Combo3.AddItem i & "月"
Next

For i = 1 To 31
  Combo4.AddItem i & "日"
Next

Combo9.AddItem n - 1 & "年"
Combo9.AddItem n & "年"
Combo9.AddItem n + 1 & "年"

For i = 1 To 12
  Combo10.AddItem i & "月"
Next

For i = 1 To 31
  Combo11.AddItem i & "日"
Next
这一大段代码都要简化。
首先,取年:
n = Year(Now())
然后,添加年和月的代码,可以并到一起。

For i = n-1 To n+1
  Combo2.AddItem i & "年"
  Combo9.AddItem i & "年"
Next i
For i = 1 To 12
  Combo3.AddItem i & "月"
  Combo10.AddItem i & "月"
Next
日期,建议使用动态添加,而不在窗体初始化过程中加入。
如这个过程改一下,
Private Sub Combo2_Click()
If Combo2.ListIndex > -1 And Combo3.ListIndex > -1 Then
    Combo4.Clear
    Dim i As Long
    For i = 1 To Day(DateSerial(Val(Combo2.Text), Val(Combo3.Text) + 1, 0))
        Combo4.AddItem i & "日"
    Next i
    Showcom
End If
End Sub
Private Sub Combo3_Click()
If Combo2.ListIndex > -1 And Combo3.ListIndex > -1 Then
    Combo4.Clear
    Dim i As Long
    For i = 1 To Day(DateSerial(Val(Combo2.Text), Val(Combo3.Text) + 1, 0))
        Combo4.AddItem i & "日"
    Next i
    Showcom
End If
End Sub
对应,9 10 二个combo 也相应修改一下。


授人于鱼,不如授人于渔
早已停用QQ了
2015-11-20 12:39
快速回复:EXIT SUB的矛盾
数据加载中...
 
   



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

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