删除在另一张纸上找到的特定行之后的所有行

时间:2019-01-23 20:33:27

标签: excel

我正在尝试编写VBA来删除工作簿中找到的超过一定数量的所有行。例如my(某些行号在单元格B6中的工作表1上找到),VBA将从工作表1 B6上找到的行号开始删除工作表2上的所有行。到目前为止,这是我所拥有的,但显然不起作用

Sub Button4_Click()
Worksheets("sheet 2").Rows($B$6 & ":" & Worksheets("sheet 2").Rows.Count).Delete
End Sub

1 个答案:

答案 0 :(得分:1)

Worksheets("Sheet 2").Range("B" & Worksheets("Sheet 1").Range("B6") & ":B" & Worksheets("Sheet 2").Rows.Count).EntireRow.Delete

将特别为您提供所要的内容,但是您应该问自己,删除1,000,000行以上是否真的有效。您是否可以通过使用Worksheets("Sheet 2")(xlUp)方法来定义要删除的范围更小的范围来标识(xlDown)中最后使用的行?

Worksheets("Sheet 2").Range("B" & Worksheets("Sheet 1").Range("B6") & ":B" & Worksheets("Sheet 2").Range("B" & Rows.Count).End(xlUp).Row).EntireRow.Delete

另外,根据您的使用情况,删除这些行的唯一目的是清除内容,在这种情况下,使用.ClearContents而不是.Delete会更快。