从每个工作表中的某个点删除所有行

时间:2019-05-06 13:49:27

标签: vba

我正在尝试搜索A列中最后使用过的行,但我设法做得很好,但是当我尝试使用该行删除其下的所有行时,我总是收到“ Object Required”错误。有任何想法吗?

对于每个xyz循环,我都进行了一些研究,但是我无法充分理解它以使其正常工作。

Sub Range_End_Method()
   Dim ws As Worksheet

   Dim lRow As Long
   lRow = Cells(Rows.Count, 1).End(xlUp).Row + 1

    For Each ws In ActiveBook

        ws.Rows(lRow & ":" & ws.Rows.Count).Delete

    Next ws
End Sub

我的期望是(假设最后使用的行是6),将第7行及以后的所有内容从工作表中删除。我已经尽力争取到正确的行,但无法删除它。

2 个答案:

答案 0 :(得分:0)

"Object Required"错误是由于代码中的错字引起的。
只需将ActiveBook更改为ActiveWorkbook,它将消失。

另一个错误是因为要遍历工作簿中的每个工作表,您需要使用.Sheets属性。

这是更正的代码:

Sub Range_End_Method()

Dim ws As Worksheet

   Dim lRow As Long
   lRow = Cells(Rows.Count, 1).End(xlUp).Row + 1

    For Each ws In ActiveWorkbook.Sheets

        ws.Rows(lRow & ":" & ws.Rows.Count).Delete

    Next ws
End Sub
  

注意:为避免变量拼写错误,请记住在每个模块的开头使用Option Explicit

希望这会有所帮助。

答案 1 :(得分:0)

Dim lRow As Long
lRow = Cells(Rows.Count, 1).End(xlUp).Row + 1

上面的代码将返回使用的最后一行,这意味着此列下该行下方的任何其他单元格均为空白。 我猜您不需要删除空白行。