Office中国论坛/Access中国论坛

标题: 很简单的一个循环想不明白 [打印本页]

作者: Bluelost    时间: 2005-8-5 02:49
标题: 很简单的一个循环想不明白
下面的代码,本意是查找成功退出过程,查找不成功则x+1,可是发现不管查找成功与否x总是等于20,总是会激发msgbox(x),为什么?

dim x as integer

x = 0

For i = 1 To 20

        If Worksheets(2).Cells(i, 1) = Target Then

            Worksheets(2).Cells(i, 2).Copy

            Worksheets(1).Cells(Target.Row, Target.Column + 1).PasteSpecial

            Exit Sub

        Else

        x = x + 1

           If x = 20 Then

            MsgBox (x)

            Exit Sub

            End If

      

        End If

        Next i
作者: 情比金坚    时间: 2005-8-5 03:21
退出循环用exit for退出过程用end sub
作者: 红池坝    时间: 2005-8-5 07:52
删除 X=X+1 行
作者: 红池坝    时间: 2005-8-5 08:01
呵呵,不好意思,把X当成I了,收回楼上发言。不过问题不应该在Exit语句(我们很多时候都是在循环中退出过程的),估计是你的Target变量的问题(也就是说事实上你的运行结果一直都没有找到过,检测的办法是在下面一句:Worksheets(1).Cells(Target.Row, Target.Column + 1).PasteSpecial

加上一句:msgbox "找到了"  (或者 MsgBox (x)  )看这句是不是执行,如果执行,应该不会继续后面的语句
作者: Bluelost    时间: 2005-8-5 16:24
应该是不关exit的事.

至于Worksheets(1).Cells(Target.Row, Target.Column + 1).PasteSpecial也是执行了的,因为可以直接看到结果,在后面加上msgbox(x)也可以看到是执行了



现在结果是不管输入什么,第一个if循环里的if和else同时执行,不明白问题出在哪
作者: Bluelost    时间: 2005-8-5 16:39
呵呵,找到问题了,不好意思是我大意了

原来代码是这样的,调试时把if traget.column =1 then这句屏蔽了忘了加上来,发帖时为了方便又没把前面2个if贴出来,汗!

谢谢2位热心的斑竹

原来完整代码:

x = 0

If Target.Column = 1 Then

    If Target.Count = 1 Then

        If Target <> "" Then

        

        For i = 1 To 20

        If Worksheets("报表一资料").Cells(i, 1) = Target Then

        Worksheets("报表一资料").Cells(i, 2).Copy

        Worksheets("报表一").Cells(Target.Row, Target.Column + 1).PasteSpecial

        'x = x - 1

        'MsgBox (x)

        Exit For

        Exit Sub

        Else

        x = x + 1

            If x = 20 Then

            MsgBox ("Can Not Find '" & x & "'")

            Exit Sub

            End If

      

        End If

        Next i

        End If

    End If

End If



还有个问题想问一下,在里,无论是手动输入或是粘贴导致的改变动会引发worksheet_change(),可是点住单元格右下角拉,这样复制的变动不会引发worksheet_change(),有什么办法让这种变动也会引发worksheet_change()呢?

[此贴子已经被作者于2005-8-5 8:44:44编辑过]


作者: 红池坝    时间: 2005-8-12 07:44
我倒……
作者: Bluelost    时间: 2005-8-12 16:53
[em04][em04][em04]
作者: douze    时间: 2005-8-13 23:35
[em01][em02][em03][em04][em05]




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3