Excel精英培训网

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

[已解决]删除指定行,除了逐个判断外还有什么好的方法么?

[复制链接]
发表于 2011-12-15 15:10 | 显示全部楼层 |阅读模式
Sub delrow1()
Dim i As Long
For i = Range("b65535").End(xlUp).Row To 2 Step -1
If Range("d" & i) = "a" Then
Rows(i).Delete
End If
Next i
End Sub

逐个判定,逐个删除,这种方法对于数据量少还行,几万行的数据速度就非常慢了,有什么好方法能够提高速度么?
删除指定行.rar (13.27 KB, 下载次数: 17)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-12-15 15:38 | 显示全部楼层
  1. Sub delrow1()
  2.     Range("b:b").Select
  3.     Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  4. End Sub
复制代码
回复

使用道具 举报

发表于 2011-12-15 15:40 | 显示全部楼层
回复

使用道具 举报

发表于 2011-12-15 15:49 | 显示全部楼层
Sub b()
    With Columns(4)
        .Replace What:="a", Replacement:="", LookAt:=xlWhole
        .SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    End With
End Sub

借用2楼代码改的,仍是取巧的,不通用
回复

使用道具 举报

发表于 2011-12-15 16:04 | 显示全部楼层    本楼为最佳答案   
试试附件中两个按钮的速度。数据加到84608行
删除指定行.rar (462.12 KB, 下载次数: 77)
回复

使用道具 举报

 楼主| 发表于 2011-12-15 16:13 | 显示全部楼层
yuhe0008 发表于 2011-12-15 16:04
试试附件中两个按钮的速度。数据加到84608行

原来的方法死机了
回复

使用道具 举报

 楼主| 发表于 2011-12-15 16:16 | 显示全部楼层
iyanhf 发表于 2011-12-15 16:13
原来的方法死机了

新方法的计算结果好像不对

点评

去SHEET2看结果  发表于 2011-12-15 16:22
回复

使用道具 举报

发表于 2011-12-15 22:27 | 显示全部楼层
这么多数据的话,就用5楼办法吧。
如果解决了你的问题,就给5楼设个最佳吧
回复

使用道具 举报

发表于 2011-12-16 01:00 | 显示全部楼层
1.zip (14.93 KB, 下载次数: 5)
回复

使用道具 举报

发表于 2011-12-16 08:39 | 显示全部楼层
换个思路  把数据放在数组内 然后循环判断得到新数组 把工作表数据清除 然后写入新数据  这个不牵扯格式  如果牵扯格式就不行了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 08:14 , Processed in 0.353389 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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