根据宏中包含的行中的值删除整行?

时间:2014-09-08 22:38:37

标签: excel vba delete-row

我有一个电子表格,其中包含大量文字和数字值。我想要一个宏搜索工作表,选择包含单词" Total"并删除整行。我一直在搜索几个小时,但没有找到任何我可以适应执行此任务的代码。我对VBA有一点经验但是没有练习和耐心。该单词不区分大小写,可以包含在一串文本中,例如:" Total for 12345 Jane Doe"。

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

Sub testing()
Dim pattern As String
pattern = "Total"
RowCount = ActiveSheet.UsedRange.Rows.Count
Dim i As Integer

For i = 1 To RowCount
    Dim j As Integer
    For j = 1 To 1
        If Cells(i, j) = pattern Then
           Cells(i, j).EntireRow.Delete
        End If
    Next j
Next i
End Sub

这可能有更多行代码,但这有助于解释您的概念。

要插入它,请在Excel中执行以下操作:

  1. 按Alt + F11
  2. Rightclick Sheet1
  3. - >插入 - >模块并粘贴此代码。

答案 1 :(得分:0)

如果选择整个范围,则以下宏应删除包含“total”的单元格的每一行,无论大小写如何。

Sub Test()
Dim cell As Range

For Each cell In Selection
    If InStr(1, cell, "total", vbTextCompare) > 0 Then
        cell.EntireRow.Delete
    End If
Next
End Sub

要插入它,请在Excel中执行以下操作:

  1. 按Alt + F11
  2. 点击插入>模块
  3. 将上述宏复制并粘贴到新模块中。