找到包含特定文本的行并删除它以及其下面的其余4行

时间:2015-03-17 14:59:14

标签: excel excel-vba vba

我想删除1000个文件中的特定单元格区域。

此单元格区域的位置在每个文件中都不相同。在某些情况下,它从A12开始,在其他一些情况下,它从A20,A21等开始。

只有一列有5行(行),我想全部删除它们。

所以,我需要:

01)找到具有特定文本(“VVVV”)的单元格(第一行)。

02)选择此单元格,其余4(下方)

03)删除,选择SHIFT CELLS UP

首先,我只能让它选择第一行并删除它(shell也会向上移动)。这是我的代码,现在删除其他行,但有一个问题:

Sub deleteRows()
'
' deleteRows Macro
'
' Keyboard Shortcut: Ctrl+s
'
Dim StartRange As String
Dim EndRange As String
Cells.Find(What:="VVVV").Select
StartRange = ActiveCell.Address
EndRange = ActiveCell.Address & 4
ActiveSheet.Range(StartRange & ":" & EndRange).Select
Selection.Delete Shift:=xlUp

End Sub

删除的行数超出预期。这意味着“EndRange”值存在问题。也许,我将不得不尝试找到一个选择范围并删除它的函数。例如,如果单元格在“A1:B1”中,我想选择“A1:B1”到“A5:B5”。

2 个答案:

答案 0 :(得分:1)

你可以用一行代码来完成:

Cells.Find(What:="VVVV").Offset(-4, 0).Resize(5, 1).EntireRow.Delete

答案 1 :(得分:0)

请试试这个:

    Sub deleteRows()
'
' deleteRows Macro
'
' Keyboard Shortcut: Ctrl+s
'
Dim StartRange As String
Dim EndRange As String
Cells.Find(What:="VVVV").Select
StartRange = ActiveCell.Address
Selection.Offset(4, 0).Select
EndRange = ActiveCell.Address
ActiveSheet.Range(StartRange & ":" & EndRange).Select
Selection.Delete Shift:=xlUp

End Sub