2016-10-03 44 views
0

我不能为我的生活弄清楚如何做到这一点!Excel的VB宏 - 找到并删除特定的数据行加上它上面的4行

我正在尝试创建一个宏,它将放置在快速访问工具栏上,以查找和删除列P =“服务声明计数1”加上其上4行的行。

该文件有几千个条目长,所以我需要它通过整个文档并删除所有5行(带有搜索数据的主行以及上面的4)。

我希望你能帮忙! :)

+1

你的意思是你想要在P列中找到一个具有'Service to Claim Count 1'的单元格,然后删除那行*和*上面的四行? – BruceWayne

+0

是的,确切!请告诉我,这是可能的! :) –

回答

1
Sub delRows() 
Dim txtCel As Range 
Dim timesFound As Long, i As Long 
timesFound = WorksheetFunction.CountIf(Range("P:P"), "Service to Claim Count 1") 
For i = 1 To timesFound 
    Set txtCel = Columns(16).Find(what:="Service to Claim Count 1") 
    txtCel.Offset(-4).Select 
    Range(txtCel, txtCel.Offset(-4)).EntireRow.Delete 
Next i 
End Sub 

非常直截了当。它找到包含文本的单元格,然后删除该行以及它上面的四行。

+0

是的,P列中会有很多空白行。 每个“记录”是5行。第1行将始终为数字,第2行将有服务声明计数为1,2,3,4或5,并且第3,4和5行将始终为空。 –

+0

@TimothyGould - 如果第2行有“Service to Claim Count 1”,您希望如何删除前面的4行?或者,您最多需要删除以前的4行,如果它小于这个数目,那就这么做吧? – BruceWayne

+0

通过删除前面的4行,以及包含“Service to Claim Count 1”的行,将它带到之前的“记录”并删除其上的所有空白行。上面的Macro有效,但有没有办法让它重复?有数千条需要删除的记录。 –