您的位置:程序门 -> vb -> vba



求助vba中错误跳转问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


求助vba中错误跳转问题
发表于:2007-05-22 12:52:30 楼主
我在vba中编写了下面的程序来查询,因为vlookup查不到对应数据时会返回错误所以用了错误跳转语句。实际使用时发现如果是连续两个数据查询返回错那第2个错误就无法跳转,请高手帮忙看一下问题在哪里。

line1:
on   error   resume   next
              如果批量返回为错误就跳转
        pil   =   application.worksheetfunction.vlookup(wul,   range( "零件批量!a:b "),   2,   0)
              if   err.number   =   1004   then
                    goto   line2
                    else:   end   if
        call   jiagf(a,   wul,   pil,   c)
        a   =   a   +   1
        goto   line1
line2:
            on   error   goto   line3
            jyj   =   application.worksheetfunction.vlookup(wul,   range( "财务价格!a:c "),   3,   0)   '查询交易价

line3:
          sheets( "工艺路线 ").cells(a,   1)   =   "无交易价格 "
            a   =   a   +   1
            b   =   2
          goto   line1
发表于:2007-05-22 13:05:491楼 得分:0
在line1或line2后加   err.clear试一试。
发表于:2007-05-23 12:21:502楼 得分:0
同意楼上的,是err没有清空,在执行vlookup语句前加入   err.clear
这样当vlookup执行发生错误时产生错误代码是正确的
发表于:2007-05-26 16:24:583楼 得分:0
程序可以修改成如下:
line1:   on   error   resume   next '             如果批量返回为错误就跳转
              pil   =   application.worksheetfunction.vlookup(wul,   range( "零件批量!a:b "),   2,   0)
              if   err.number   =   1004   then     goto   line2
              call   jiagf(a,   wul,   pil,   c)
              a   =   a   +   1
              goto   line1
              jyj   =   application.worksheetfunction.vlookup(wul,   range( "财务价格!a:c "),   3,   0)  
line3:   sheets( "工艺路线 ").cells(a,   1)   =   "无交易价格 "
              a   =   a   +   1
              b   =   2
              goto   line1
发表于:2007-05-26 16:26:284楼 得分:0
程序可以修改成如下:
line1:   on   error   resume   next '             如果批量返回为错误就跳转
              pil   =   application.worksheetfunction.vlookup(wul,   range( "零件批量!a:b "),   2,   0)
              if   err.number   =   1004   then     goto   line2
              call   jiagf(a,   wul,   pil,   c)
              a   =   a   +   1
              goto   line1
line2:   jyj   =   application.worksheetfunction.vlookup(wul,   range( "财务价格!a:c "),   3,   0)  
line3:   sheets( "工艺路线 ").cells(a,   1)   =   "无交易价格 "
              a   =   a   +   1
              b   =   2
              goto   line1

发表于:2007-05-26 16:35:565楼 得分:0
你的第2个错误根本就不算什么跳转。
并且line3之后的错误没有处理程序。也就是说如果错误发生在line3之后,就会报错!
所以line3之后还要启动错误处理程序加入   on   error   resume   next   或者其它的on   error...


快速检索

最新资讯
热门点击