Excel精英培训网

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

[已解决]批量实现 保留指定年份数据,其余年份数据删除

[复制链接]
发表于 2015-9-21 19:50 | 显示全部楼层 |阅读模式
本帖最后由 richalken 于 2015-9-21 22:36 编辑

我需要做的是:不同的机构(ecode列)只要保留注册年份(regyear列)前一年(year列)和后三年(year列)的数据,其他的数据都删除。

因为数据量比较大,手动处理非常慢且容易出错,VBA还在学习过程中,处于晕乎阶段,请大侠路过出手相助,谢谢啦!!!





最佳答案
2015-9-21 20:55
保留指定年份数据tw.rar (33.95 KB, 下载次数: 5)

保留指定年份数据.zip

18.72 KB, 下载次数: 5

发表于 2015-9-21 20:30 | 显示全部楼层
  1. Sub test()
  2. Dim arr, x%, y%, brr(), s%, num%, lrow%, lcol%
  3. arr = Sheet1.Range("a1").CurrentRegion
  4. Sheet2.Cells.ClearContents
  5. lrow = UBound(arr): lcol = UBound(arr, 2)
  6. ReDim brr(1 To lrow, 1 To lcol)
  7. For x = 2 To lrow
  8.       num = CLng(arr(x, 1)) - CLng(arr(x, 3))
  9.       If num > -2 And num < 4 Then
  10.            s = s + 1
  11.            For y = 1 To lcol
  12.                brr(s, y) = arr(x, y)
  13.            Next
  14.       End If
  15. Next
  16. Sheet2.[a2].Resize(s, y) = brr
  17. Rows("1:1").Copy Sheet2.[a1]
  18. MsgBox "完毕"
  19. End Sub

复制代码
回复

使用道具 举报

发表于 2015-9-21 20:55 | 显示全部楼层    本楼为最佳答案   
保留指定年份数据tw.rar (33.95 KB, 下载次数: 5)
回复

使用道具 举报

 楼主| 发表于 2015-9-21 22:34 | 显示全部楼层
gdpgdp317 发表于 2015-9-21 20:55
传代码,说网络防火墙限制

谢谢,可以用的,帮我节省了很多时间,非常感谢!!!{:11:}{:11:}{:11:}
回复

使用道具 举报

 楼主| 发表于 2015-9-21 22:36 | 显示全部楼层
Hsiao 发表于 2015-9-21 20:30

感谢您的代码,不过运行后报类型错误,不过还是要感谢您的帮助,谢谢!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 01:55 , Processed in 0.847338 second(s), 18 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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