首页 > 解决方案 > 如何使用列值删除基于Excel工作表中的行

问题描述

我有 5 张不同的工作表。sheet3 和 sheet4 我想根据单列单元格值删除行。在表 3 中,如果 H2="#N/A" 和 H503="#N/A" 则我想删除基于 H 列单元格值的行,然后删除整行。在工作表 4 中,如果 B2="320857876",B3="32085678",B4="12133435" 我想根据 b 列单元格值删除行,则删除 B 列单元格值以 302 开头的整行。我想从“C”列中删除所有数据我的excel表是这样的

使用 excel 文件

Sub Create()
  Dim LastRow As Long
  Dim i As Long

  LastRow = Range("B10000").End(xlUp).Row
  For i = LastRow To 1 Step -1
    If Range("B" & i) = "#N/A" Then
        Range("B" & i).EntireRow.Delete
    End If
  Next
End Sub

标签: excelvbarowcell

解决方案


您在那里有一些要求,并且您的代码相当轻,但就其中的#N/A一部分而言,您不能只使用 value 方法测试该文本,这是为 range 对象返回的默认属性。

Sub Create()
    Dim LastRow As Long, i As Long

    LastRow = Range("B10000").End(xlUp).Row

    For i = LastRow To 1 Step -1
        If Range("B" & i).Text = "#N/A" Then
            Range("B" & i).EntireRow.Delete
        End If
    Next
End Sub

...您需要使用.Text它才能使其正常工作,或者If IsError(Range("B" & i)) Then是另一种方法。

您的其余要求只是逻辑。您的其余代码相对健全,因此您只需要完成它即可。

我希望这会有所帮助。


推荐阅读