| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
绝地游戏外挂辅助教学千里之行 始于足下
共有 1227 人关注过本帖
标题:EXIT SUB的矛盾
只看楼主 收藏
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:70
专家分:43
注 册:2014-12-19
结帖率:72.73%
  问题点数: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
等 级:版主
威 望:189
帖 子:4068
专家分:25057
注 册: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
帖 子:70
专家分:43
注 册:2014-12-19
  得分:0 
回复 2楼 风吹过b
想不通哪里出问题
2015-11-20 10:24
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:70
专家分:43
注 册:2014-12-19
  得分:0 

我特意用了一个text来记录listview的count
实际结果是1。
但是问题是,如果是1,不会进入IF,不会有MSG
哪里出问题
附件: 您没有浏览附件的权限,请 登录注册
2015-11-20 10:29
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:189
帖 子:4068
专家分:25057
注 册: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
帖 子:70
专家分:43
注 册:2014-12-19
  得分:0 
回复 5楼 风吹过b
那个提示内容是因为复制过来的时候有乱码,我重新输入时懒了下,少输了几个字

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

能编个毛线衣吗?
2015-11-20 11:41
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:70
专家分:43
注 册:2014-12-19
  得分:0 
回复 7楼 wmf2014

复制上来有很多中文乱码,我还是打包吧
附件: 您没有浏览附件的权限,请 登录注册
2015-11-20 11:58
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:189
帖 子:4068
专家分:25057
注 册:2008-10-15
  得分:0 
回复 6楼 linandceline
改了后,还出现,那说明不是在这里触发的这个显示。

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


授人于鱼,不如授人于渔
早已停用QQ了
2015-11-20 12:15
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:189
帖 子:4068
专家分:25057
注 册: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







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

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