Re: [算表] vba循环删除类似字眼资料?

楼主: ptguitar (佩蒂吉他)   2018-01-08 14:57:32
上次有问类似问题
现在遇到困难就是
遇到超大量资料 数十万笔
而要删除的条件很多
速度很慢
不知道有什么更快速写法
===
※ 引述《ptguitar (佩蒂吉他)》之铭言:
Sub test001()
Dim YY, XX, ZZ
YY = "*海外分行*"
XX = "*机构名称*"
ZZ = "*工作表*"
For i = [A65536].End(xlUp).Row To 1 Step -1
If Range("A" & i).Text Like YY Or Range("A" & i).Text Like XX Or Range("A"
& i).Text Like ZZ Then
Rows(i).Delete
End If
Next
End Sub
作者: soyoso (我是耀宗)   2018-01-08 15:17:00
如以进阶筛选range.advancedfilter,非变量yy、xx、zz的资料到其他工作表或范围看是否也符合要保留的资料
楼主: ptguitar (佩蒂吉他)   2018-01-08 16:29:00
感谢S大指点~
作者: soyoso (我是耀宗)   2018-01-08 18:37:00
如以筛选的方式,测试了一下以55万笔*5栏的资料,来取符合条件为36万8千多笔,时间63~76秒https://i.imgur.com/7oVnwVt.jpg也有要68秒多才完成的 https://i.imgur.com/8LkhaIR.jpg相同资料以sql来取,时间27~28秒多https://i.imgur.com/FkeYhC9.jpg最后加上a:j删除,时间则为30秒多https://i.imgur.com/6kzKk3Y.jpg以上是模拟55万笔资料的速度(因电脑而异),如果n大所提供方式效率更好的话,就请忽略上述回文如可以access来协助取出的话,速度上会更快速
作者: newacc (XD)   2018-01-08 21:09:00
s大,我也蛮好奇效率的差别的,方便给个code比较一下吗?
作者: soyoso (我是耀宗)   2018-01-08 21:54:00
进阶筛选方面是range.advancedfilter以copy,条件是以g1:i2,复制位置k1另一个是以以range copyfromrecordset参数data则是以database.execute来执行sql字串的部分,字串方面则是以where not like来当条件,筛选不等于的部分

Links booklink

Contact Us: admin [ a t ] ucptt.com