您的位置:程序门 -> 其他开发语言 -> 其他开发语言



根据条件删除指定的行


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


根据条件删除指定的行[已结贴,结贴人:wxg600308]
发表于:2007-04-20 10:47:59 楼主
下面是根据d列删除等如0值的行,
        set   myrange   =   columns( "d ")
        on   error   goto   0
        matchstring   =   0          
        set   c   =   myrange.find(what:=matchstring,   after:=myrange.cells(1),       lookin:=xlvalues,   lookat:=xlwhole)  
        if   not   c   is   nothing   then
                set   delrange   =   c
                firstaddress   =   c.address
                do
                        set   c   =   myrange.findnext(c)
                        set   delrange   =   union(delrange,   c)
                loop   while   firstaddress   <>   c.address
        end   if
        if   not   delrange   is   nothing   then   delrange.entirerow.delete
    -------------------
    但是我要根据两个条件,a列的值和d列等如0值的行
    下面的代码:
    for   r   =   2   to   20
    if   range( "a "&r)   =   "a列的条件值 "   and   range( "d "&r)   =   0   then
      row(r).delete
  next   r
  这段代码不能删除所有符合条件的行
  只能跳一行删除,不知为什么?
  请高师指点
发表于:2007-04-30 14:23:321楼 得分:0
不懂,研究
发表于:2007-05-01 11:34:502楼 得分:0
哇,全代码啊?晕,不懂,学习
发表于:2007-05-01 17:17:543楼 得分:0
学习
呼叫版主
发表于:2007-05-02 08:45:244楼 得分:50
for   r   =   2   to   20
                if   range( "a "   &   r)   =   "a列的条件值 "   and   range( "d "   &   r)   =   0   then
                        rows(r).entirerow.delete
                        r   =   r   -   1   '因为满足条件的行被删除后,未删之前的第r+1行变成了r行,所以不加这句的结果是满足条件被删除的行紧跟的那行被跳过了。
                end   if
        next   r
发表于:2007-05-10 16:52:335楼 得分:50
倒过来:
for   r   =   20   to   2   step   -1
    if   range( "a "&r)   =   "a列的条件值 "   and   range( "d "&r)   =   0   then
      row(r).delete
  next   r
发表于:2007-05-10 16:55:556楼 得分:0
都是高手   学习收藏
发表于:2007-05-10 18:40:167楼 得分:0
帮顶


快速检索

最新资讯
热门点击