【问题标题】:A way to delete rows if row number is contained in a set?如果行号包含在集合中,一种删除行的方法?
【发布时间】:2020-12-25 21:41:59
【问题描述】:

目前我正在使用此代码自下而上删除行:

Sub Deleterows()

With Sheet8


.Rows(9).EntireRow.Delete
.Rows(5).EntireRow.Delete
.Rows(1).EntireRow.Delete

End With

End Sub

我有很多行要删除。需要删除的总是相同的行。

我想知道是否有更好的方法来删除我的 50 条特定行而不用写 .Rows(x).EntireRow.Delete 50 次。

例如if row number in [9,5,1] then delete。这也更容易添加一个行号而不重复一行。

这是数据提取的几行。请注意,它已被转置。

【问题讨论】:

  • 你不能在要删除的行中找到一个标准来避免写他们的数字吗?以这种方式您将获得很少的进展...您是否一直需要删除相同的行号
  • 如果你录制一个宏,你会注意到代码是Range("9:9,5:5,1:1").Delete。顺便说一句,我同意 Fane 的观点。如果有标准,那么也许使用 Autofitler 来识别行然后删除它们?
  • 这篇文章可能会给你一些想法Delete rows...
  • 这里有两个链接可以帮助你实现你想要的。 Using AutofilterUsing Union
  • 数据已被转置,因此所有旧的列标题现在都在 A 列中,数据在列 (B:AE) 中。我可以在 A 列上应用过滤器并勾选/取消勾选我的字段,但这与删除特定行没有什么不同?

标签: excel vba set rows delete-row


【解决方案1】:

如果您需要所有时间相同的行,请使用下一种方法。它不使用任何迭代,并将立即删除它们。您可以按任意顺序构建数组:

 Dim sh As Worksheet, delRange As Range, arr As Variant
 
 arr = Array(1, 7, 5, 3, 19) 'build here the rows to be deleted array
 Set sh = ActiveSheet
 Set delRange = sh.Range("A" & Join(arr, ",A"))
 delRange.EntireRow.Delete xlUp

【讨论】:

  • 完美。谢谢费恩。完美解决我的问题。
  • @Dasal Kalubowila:很高兴我能帮上忙!但我仍然不明白为什么你需要手动构建这样一个数组,而不是根据设置范围来寻找一些标准......
  • 你能看到我上面关于已经被转置的数据的评论吗? A 列包含所有标题,B:AE 列包含数据。您是说应用过滤器并取消勾选/勾选我要删除/保留在 A 列中的标题吗?这不会像手动一样吗?
  • @Dasal Kalubowila:我现在才看到。但是,即使在这种情况下,我也不会建议过滤方法。如果有一个共同的标准来识别这些行,则可以使用多种方法构建一个类似的delRange。如果您喜欢挑战,请尝试我定义此标准/算法,我将提供一个解决方案来自动构建要删除的范围。你可以从里面调用 Sub/Function 进行换位... 现在我必须离开办公室,但我可以在我在家的时候看看它。 :)
  • 聪明的想法来构建delRange 通过Join(arr, ",A")) +:) @FaneDuru
【解决方案2】:

如您所述,您可以定义要删除的行索引范围:

Dim rows2delete As Variant 
Dim i As Integer

rows2delete = Array(9, 5, 1) 'descending order is obligatory!

For i = LBound(rows2delete) To UBound(rows2delete) 
    Sheet8.Rows(rows2delete(i)).EntireRow.Delete
Next

祝你好运!

更多详情请见:VBA - Array function

【讨论】:

  • 这很好。谢谢你。我只是更喜欢无迭代的解决方案!
  • 谢谢。选择权属于你。 :)
猜你喜欢
  • 2020-07-29
  • 2015-09-19
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多