Office中国论坛/Access中国论坛

标题: 如何选择性的删除表格重复的行 [打印本页]

作者: zkyt    时间: 2016-9-26 10:42
标题: 如何选择性的删除表格重复的行
本帖最后由 zkyt 于 2016-9-26 10:44 编辑

如何选择性的删除表格中重复的行
作者: tmtony    时间: 2016-9-26 10:43
如何有选择性呢,最好列个 内容格式或上传上示例,才好帮你
作者: zkyt    时间: 2016-9-26 10:46
tmtony 发表于 2016-9-26 10:43
如何有选择性呢,最好列个 内容格式或上传上示例,才好帮你

已经上传,麻烦给解决一下,谢谢!
作者: zkyt    时间: 2016-9-26 14:33
求高手指点
作者: roych    时间: 2016-9-26 21:07
如果你的Office是2007版本以上,可以按颜色筛选后删除。如图所示,选择数据/筛选/按颜色筛选
[attach]60008[/attach]
依次删除红色底纹和黄色底纹的就好了。

作者: zkyt    时间: 2016-9-27 10:10
roych 发表于 2016-9-26 21:07
如果你的Office是2007版本以上,可以按颜色筛选后删除。如图所示,选择数据/筛选/按颜色筛选

依次删除红 ...

十分感谢您的回复。不过表格实际是没有颜色区分的,我是为了突出重复项才加的颜色。就是为了有选择性的删除和保留重复行。采用高级筛选功能,会把所有重复行都删除掉的,但是我想保留一些重复行。求再次指教,谢谢。
作者: xcharmer    时间: 2016-9-27 21:29
本帖最后由 xcharmer 于 2016-9-27 21:34 编辑

制作来了一个vba代码
使用前提是:
1、当前表在最左边的第一个。
2、删除是删除整行,如果有其他需要,请发示例过来
3、判断是用“材料费中:暂估价合计”这个语句为判断。如果表格式不变则可以使用
  1. <div class="blockcode"><blockquote>Sub 查找删除()
  2.   Dim i
  3.   '定义一个变量记录行号
  4.   For i = ActiveWorkbook.Sheets(1).Range("c1").End(xlDown).Row To 1 Step -1
  5.     '从最后一排向前循环
  6.     If Cells(i, 3) = "材料费中:暂估价合计" Then
  7.     '如果第N行的第三列的值是“材料费中:暂估价合计”
  8.       Rows(i & ":" & i).Delete Shift:=xlUp
  9.       '将第N行全行删除
  10.     End If
  11.   Next i
  12. End Sub
复制代码


作者: pureshadow    时间: 2016-9-28 17:11
就是要把C列里有“材料费用:暂估价合计”的那一整行删除吗?直接筛选可以不?
作者: zkyt    时间: 2016-9-29 09:43
pureshadow 发表于 2016-9-28 17:11
就是要把C列里有“材料费用:暂估价合计”的那一整行删除吗?直接筛选可以不?

刚才使用了你的方法,确实不错,十分感谢。
除了“材料费用:暂估价合计”那一行要删除外,还要删除表格中重复的表头(黄色行)。
用你的方法筛选删除表头,会出现一个空白行,可能是表头占用两行单元格的原因。不过可以再次运用筛选的方法,筛选出空白行,再次删除,就达到目的了。
谢谢你的帮助!
作者: zkyt    时间: 2016-9-29 09:50
xcharmer 发表于 2016-9-27 21:29
制作来了一个vba代码
使用前提是:
1、当前表在最左边的第一个。

谢谢您的回帖。
由于没有在excel中运用过vba代码,所以不清楚如何把您的代码运用到excel中。在百度上查了一下,但是操作还是失败了。没能验证您的代码程序。不过您的程序肯定应该能解决的,我会再次验证您的方法。
再次向您表示谢意!!!
作者: xcharmer    时间: 2016-9-29 22:18
zkyt 发表于 2016-9-29 09:50
谢谢您的回帖。
由于没有在excel中运用过vba代码,所以不清楚如何把您的代码运用到excel中。在百度上查 ...

如果方便,就把原表格发过来,我改成比较适用的,靠范例来讲,只能说是自己能改一部分代码,将程序运行起来。如果你不会VBA,那就发原型过来吧。
作者: xcharmer    时间: 2016-9-29 22:34
这个代码你试试呗,应该可以用的
作者: zkyt    时间: 2016-9-30 09:24
xcharmer 发表于 2016-9-29 22:34
这个代码你试试呗,应该可以用的

谢谢太厉害了!
看来要学学VBA了,如果会编程的话使用起来很方便。可以的话烦请推荐一些VBA的学习资料。谢谢!
作者: ppwish    时间: 2016-10-26 23:34
我跟你是同行哦。从广联达中导出表格经常会遇到这种情况。我的通常做法是加辅助列,一般要删除的行都有一个特点就是有空白单元格,我在辅助列中添加公式=if(countblank(选中区域。注意为相对引用),"删除",)。
第二步,选中标题行,筛选,在辅助列中选择"删除"。然后删除;另外一种方法是选中辅助列,选择"删除",直接删除,删除时会弹出对话框,选择整行
希望能帮到你
作者: zkyt    时间: 2016-10-31 09:13
ppwish 发表于 2016-10-26 23:34
我跟你是同行哦。从广联达中导出表格经常会遇到这种情况。我的通常做法是加辅助列,一般要删除的行都有一个 ...

谢谢你的分享,共同进步
作者: 灰太郎    时间: 2022-1-26 11:48
123456




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