【问题标题】:Delete entire rows based on a value contained in the row with macro? [duplicate]根据宏行中包含的值删除整行? [复制]
【发布时间】:2014-09-08 22:38:37
【问题描述】:

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

【问题讨论】:

  • 欢迎来到Stack Overflow。此处的问题应显示研究工作或尝试。请拍下tour

标签: excel vba delete-row


【解决方案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. 右键单击 Sheet1
  3. ->插入->模块并粘贴此代码。

【讨论】:

    【解决方案2】:

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

    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. 将上述宏复制并粘贴到新模块中。

    【讨论】:

    • 我真的很想用这个,但它陷入了无限循环......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 2012-07-16
    • 2019-05-29
    相关资源
    最近更新 更多