用VBA在EXCEL中删除每隔n行 [英] delete every n rows in excel with VBA

查看:0
本文介绍了用VBA在EXCEL中删除每隔n行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在EXCEL中有一个数据集,每15分钟进行一次测量(一行一个测量),我希望只保留一整小时进行的测量,删除其余的。换句话说:我想保留第一行,删除后三行,保留第五行,删除后三行,依此类推。 我想使用VBA,但我对此完全陌生。 我在这里找到了这个宏,它每四行删除一次

Sub remove_rows()
Dim x As Long
Application.ScreenUpdating = False

For x = 100 To 1 Step -5
    Range(x & ":" & x - 3).EntireRow.Delete
Next x

Application.ScreenUpdating = True
End Sub

(来源:Delete every four rows in excel) 如何将其更改为每三行只删除一次?我必须对每5分钟进行一次测量的数据集执行相同的操作(保留第1行、删除下11行、保留第12行,依此类推)。这个宏对这个数据集也有好处吗?最后,使用VBA是这个问题的最佳解决方案,还是有其他更好的方法?数据集相当大(100k+行)。

推荐答案

PowerQuery(2016年在数据选项卡中>获取和转换,2013年来自微软的免费插件,然后是PowerQuery选项卡)针对您提到的行数进行了绝对优化。编写查询需要<;1分钟。

.66 of a second on a test with 200K rows to complete task.

1)选择数据中的行,然后选择表中的数据>

2)指示您的表是否有标题

3)弹出查询编辑器屏幕

4)选择主页>删除行>删除备用行

5)指定模式。例如,保留1删除3,如您的示例所示:

6)点击OK。遵守新模式符合要求

7)主页>关闭并加载>

8)指定关闭和加载到的位置,例如新工作表

您可以加载到相同的工作表或新工作表。答对了,你有了新的数据集。只要向原始数据集中添加行,只需刷新此查询,结果集就会更新,删除不需要的行。

输出:

刷新查询(绿色圆圈箭头):

1)工作簿查询本身旁边

2)或从功能区>刷新

这篇关于用VBA在EXCEL中删除每隔n行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆