Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4271|回复: 3

[已解决]一列删重

[复制链接]
发表于 2014-6-17 18:35 | 显示全部楼层 |阅读模式
本帖最后由 水中游 于 2016-12-4 14:20 编辑

一列里面有重复内容,想从下往上删除重复的,写了个宏运行就整列都删了,大家帮忙看看哪里的问题呢?
Sub 删重复()
h = [h65536].End(3).Row
For i = h To 2 Step -1
aa= Cells(i, "h")
hh = [h65536].End(3).Row
For ii = 2 To hh - 1
If Cells(ii, "h") = aa Then
    Rows(i).Select
    Selection.Delete Shift:=xlUp
Exit For
End If
Next
Next
End Sub


最佳答案
2014-6-17 19:03
最简单应该是利用自带的删除重复项删除
  1. Sub demo()
  2.     Dim irow&
  3.     irow = Cells(Rows.Count, "h").End(xlUp).Row
  4.     Range("H1:H" & irow).RemoveDuplicates Columns:=1
  5. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-6-17 18:55 | 显示全部楼层
这个循环很有问题...举个例子说吧 假如这列数据最后2个数据都是不重复的,在第一次循环后,最后一个数据不会删除,这个时候h的值不变,进行第二次循环,aa=cells(h-1,"h")  而判断重复的循环是从ii=2 to h-1  循环到 h-1的时候就把cells(h-1,"h")这1行删除了,但实际是不重复的
回复

使用道具 举报

发表于 2014-6-17 19:03 | 显示全部楼层    本楼为最佳答案   
最简单应该是利用自带的删除重复项删除
  1. Sub demo()
  2.     Dim irow&
  3.     irow = Cells(Rows.Count, "h").End(xlUp).Row
  4.     Range("H1:H" & irow).RemoveDuplicates Columns:=1
  5. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-6-23 09:18 | 显示全部楼层
ghostjiao 发表于 2014-6-17 19:03
最简单应该是利用自带的删除重复项删除

不好意思,最近有事情没来得及看,非常感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-7 05:46 , Processed in 0.272533 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表