首页 > 解决方案 > 删除在另一张纸上找到某个行之后的所有行

问题描述

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

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

标签: excel

解决方案


线

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)or(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会更快。


推荐阅读