当前位置: 首页 > 知识库问答 >
问题:

如何使用列值删除excel表中的行

戴鸿羽
2023-03-14

我有5张不同的表格。sheet3和sheet4我希望根据单个列单元格值删除行。在表3中,我希望根据H列单元格值删除行,如果h2=“#n/a”和h503=“#n/a”,则删除整个行。在表4中,如果b2=“320857876”、b3=“32085678”、b4=“12133435”删除b列单元格值以302开头的整个行,我希望根据b列单元格值删除行。我想删除'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

共有1个答案

万俟靖
2023-03-14

这里有一些需求,代码也相当简单,但是关于其中的#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来使其工作,或者如果IsError(Range(“b”&i)),则是另一种方法。

您的其余要求只是逻辑。您的代码的其余部分相对较好,所以您只需要完成它。

我希望这能有所帮助。

 类似资料:
  • 假设我有一张工作表--第一张--有5000多行(例如,每行“a”-“H”)。 在另一个工作表--第2号--中,我有一个“to-remove-list”--一个包含400个值的单列“a”,每个值包含字母数字字符串(例如:xxx1234)。 如果第'e'列包含“to-remove-list”(第2页的第'a'列)中的任何值,则必须删除第1页中的每一行。 删除整行,我的意思是删除该行并向上移动(不离开空

  • 问题内容: 我想使用此forEach循环从列表中删除一个元素。 问题答案: 您 不应该 修改要循环的数组。不过,您可以制作一个新的: 为什么不应该修改要循环的数组。

  • 这真的只是我的问题。我在网上所能找到的只是如何删除键值对,而不是如何在键值是列表的情况下从键值中删除特定值。例:一个关键的情感值是[‘中立’、‘快乐’],我只想删除‘快乐’。字典[情感]。删除('happy')根本不起作用。

  • 我在MySQL中的查询有问题。我的表有4列,看起来如下所示: 和是来自不同表的外键。 我只想删除一行: 它出现了两次,所以我只想删除它。 我尝试了以下查询: 但它将删除这两个(因为它们是重复的)。有什么关于解决这个问题的提示吗?

  • 问题内容: 我想从列表列表中删除所有重复列表。 所以我有一个这样的清单清单。 我希望有: 我不知道该怎么办。 谢谢 问题答案: 您可以使用一组: 或者,如果您更喜欢列表推导/生成器: 最后,如果顺序很重要,则可以始终对b进行排序:

  • 我想删除这个列表中的无值 并得到如下输出