Excel精英培训网

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

[已解决]删除表格中数字相同的行

[复制链接]
发表于 2014-4-28 11:25 | 显示全部楼层 |阅读模式
请编写代码
      1、在工作表1中,表格1、2、3、4有两行以上相同数字的行,只要数字相同的行大于二行,把这些相同的行都删除.
      2、如表1中第一、二、三行是相同的,把这三行都删除。
      3、筛选后的内容放到工作表2里,表1筛选后的内容放到表5里,表2筛选后的内容放到表6里,表3筛选后的内容放到表7里,表4筛选后的内容放到表8里,
谢谢!
最佳答案
2014-4-28 13:44
好多以前做过。。。。。
  1. Private Sub CommandButton1_Click()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     Sheets("2").UsedRange.ClearContents
  4.     For y = 1 To 4
  5.         r = IIf(y <= 2, 1, 255)
  6.         c = IIf(y Mod 2 = 1, 1, 15)
  7.         arr = Sheet1.Cells(r, c).Resize(253, 9)
  8.         ReDim zff(1 To UBound(arr, 2))
  9.         ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
  10.         For i = 1 To UBound(arr)
  11.             N = 0
  12.             For k = 1 To UBound(arr, 2)
  13.                 zff(k) = arr(i, k)
  14.             Next
  15.             zf = Join(zff, ",")
  16.             d(zf) = d(zf) + 1
  17.         Next
  18.         dk = d.keys: dt = d.items
  19.         For i = 0 To UBound(dk)
  20.             If dt(i) = 1 Then
  21.                 s = s + 1
  22.                 For x = 1 To UBound(arr, 2)
  23.                     brr(s, x) = Split(dk(i), ",")(x - 1)
  24.                 Next
  25.             End If
  26.         Next
  27.         r1 = IIf(y <= 2, 1, 128)
  28.         Sheets("2").Cells(r1, c).Resize(s, 9) = brr
  29.         s = 0
  30.         d.RemoveAll
  31.     Next
  32. End Sub
复制代码

删除表格中数字相同的行.rar

28.55 KB, 下载次数: 12

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-4-28 11:28 | 显示全部楼层
不要重复发帖  
如果你的问题太复杂要求太多    建议将复杂的问题拆成一个个的小问题  这样更有利于在论坛获得解决的办法
回复

使用道具 举报

 楼主| 发表于 2014-4-28 11:36 | 显示全部楼层
冥王 发表于 2014-4-28 11:28
不要重复发帖  
如果你的问题太复杂要求太多    建议将复杂的问题拆成一个个的小问题  这样更有利于在论坛 ...

不是重复的,内容不同
修正错误:“只要数字相同的行大于二行”这句话中大于行”改为”大于行“
回复

使用道具 举报

发表于 2014-4-28 13:44 | 显示全部楼层    本楼为最佳答案   
好多以前做过。。。。。
  1. Private Sub CommandButton1_Click()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     Sheets("2").UsedRange.ClearContents
  4.     For y = 1 To 4
  5.         r = IIf(y <= 2, 1, 255)
  6.         c = IIf(y Mod 2 = 1, 1, 15)
  7.         arr = Sheet1.Cells(r, c).Resize(253, 9)
  8.         ReDim zff(1 To UBound(arr, 2))
  9.         ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
  10.         For i = 1 To UBound(arr)
  11.             N = 0
  12.             For k = 1 To UBound(arr, 2)
  13.                 zff(k) = arr(i, k)
  14.             Next
  15.             zf = Join(zff, ",")
  16.             d(zf) = d(zf) + 1
  17.         Next
  18.         dk = d.keys: dt = d.items
  19.         For i = 0 To UBound(dk)
  20.             If dt(i) = 1 Then
  21.                 s = s + 1
  22.                 For x = 1 To UBound(arr, 2)
  23.                     brr(s, x) = Split(dk(i), ",")(x - 1)
  24.                 Next
  25.             End If
  26.         Next
  27.         r1 = IIf(y <= 2, 1, 128)
  28.         Sheets("2").Cells(r1, c).Resize(s, 9) = brr
  29.         s = 0
  30.         d.RemoveAll
  31.     Next
  32. End Sub
复制代码
回复

使用道具 举报

发表于 2014-4-28 13:46 | 显示全部楼层
请看附件。

删除表格中数字相同的行.rar

30.67 KB, 下载次数: 8

回复

使用道具 举报

发表于 2014-4-28 13:47 | 显示全部楼层
以前做过的是把重复的筛选出来,现在做的是把不重复的筛选出来,如此而已。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 12:05 , Processed in 0.311896 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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