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



excel删除重复行的问题,初学者


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


excel删除重复行的问题,初学者
发表于:2007-02-05 10:10:52 楼主
要求这个文件里面凡是黑色的行都要删除,如果红色的行与黑色的行一样,那么红色的行也要删除,就是说删除时遇到重复的全部删除,比如1,2,2,3,4,4,5结果应该剩下1,3,5,如果有唯一的黑色行,那么也把他删了,这个论坛很专业啊,高手应该不少啊,不会很难吧,大家认为有什么办法可以实现呢?或者有没有相关的脚本?
发表于:2007-02-05 12:20:581楼 得分:0
用excel宏去删除吧,不过写宏代码,要去判断和挑选重复的行,具体代码要根据实际情况和个人爱好去写。
发表于:2007-02-08 15:02:092楼 得分:0
你的是excel2000?
如果是07的话
有这个功能
参考:上期的电脑报
发表于:2007-02-08 22:15:463楼 得分:0
看看这个
    sub   macro2()
              with   [a1].resize([a65536].end(xlup).row,   1)
                        .formular1c1   =   "=if(countif(r1c3:rc3,rc3)=1,1,1/0) "         '重點
                        .specialcells(xlcelltypeformulas,   16).entirerow.select   'delete
              end   with
      end   sub
发表于:2007-02-14 17:53:164楼 得分:0
sub   macro1()
'
        dim   arrrow()   as   string
        dim   num   as   long
       
        num   =   0
        redim   arrrow(num)
       

        for   i   =   1   to   activecell.specialcells(xlcelltypelastcell).row
                '记录凡是颜色=灰色的行号
                if   rows(i).interior.colorindex   =   16   then
                        arrrow(num)   =   i
                        num   =   num   +   1
                        redim   preserve   arrrow(num)
                end   if
                '记录重复的行号
                for   j   =   1   to   i   -   1
                        if   cells(i,   1)   =   cells(j,   1)   then
                                arrrow(num)   =   i
                                num   =   num   +   1
                                redim   preserve   arrrow(num)
                                exit   for
                        end   if
                next
        next
       
'通过行号,组成一个选择范围
        strtemp   =   " "
        for   i   =   0   to   ubound(arrrow)   -   1
              '   debug.print   arrrow(i)
                if   strtemp   <>   " "   then
                        strtemp   =   strtemp   +   ", "   +   arrrow(i)   +   ": "   +   arrrow(i)
                else
                        strtemp   =   strtemp   +   arrrow(i)   +   ": "   +   arrrow(i)
                end   if
        next
'选择组成的行范围
        range(strtemp).select
'删除选择的行
        selection.delete   shift:=xlup
       
end   sub
发表于:2007-08-08 14:31:045楼 得分:0
哈哈,2楼是卖书的。


快速检索

最新资讯
热门点击