excel在某些情况下删除行

时间:2013-02-06 19:15:49

标签: excel vba excel-vba delete-row

如果G列中的数字以210开头,我该如何删除Excel工作表的整行。

如果单元格内部有某个210,我不想删除该行,但只有在它开始时才会删除。

2 个答案:

答案 0 :(得分:3)

使用此代码:

Sub RemoveRows()

Dim i As Long

i = 1

Do While i <= ThisWorkbook.ActiveSheet.Range("G1").CurrentRegion.Rows.Count

    If Left(ThisWorkbook.ActiveSheet.Range("G" & i).Formula, 3) = "210" Then
        ThisWorkbook.ActiveSheet.Cells(i, 1).EntireRow.Delete
    Else
        i = i + 1
    End If

Loop

End Sub

示例文件:https://www.dropbox.com/s/yp2cwphhhdn3l98/RemoweRows210.xlsm

要查看并运行,请按 ALT - F11 ,打开Module1并按 F5 。祝你好运!

答案 1 :(得分:1)

如果你想在没有代码的情况下这样做,但纯粹在用户界面中,这就是你如何非常有效地做到这一点:

  1. 在H列的任何单元格中插入临时列(例如G列右侧)( Ctrl - Space Ctrl - +
  2. 使用公式=LEFT(TEXT(G1),3)="210"填充列 - 对于您查找的所有行,这将返回TRUE
  3. 将AutoFilter应用于新列或整个范围( Ctrl - Shift - L
  4. 过滤TRUE的列 - 这样,只有您要删除的行仍为
  5. 选择所有行并删除表格中任何单元格中的 Ctrl - A Shift - Space Ctrl - -
  6. 删除H列中任何单元格中的临时列( Ctrl - 空格 Ctrl - -
  7. 完成!