如果后续行不为空,如何在Excel中查找第一个空行

时间:2014-02-02 04:00:14

标签: excel excel-vba vba

如何在特定工作表上找到自上而下的第一个完全空行?

因为工作表在几个空行的末尾包含一个Totals行,所以我认为我不能简单地使用Range.End属性并偏移1.

2 个答案:

答案 0 :(得分:1)

要查找第一个空行,请使用UsedRange循环查看Find确定的实际CountA以测试空行

如果未找到任何行,请使用Find确定的最后一个单元格结尾后的下一行

   Sub Method2()
   Dim rng1 As Range
   Dim rng2 As Range

   Dim bFound As Boolean

   Set rng2 = ActiveSheet.Cells.Find("*", [a1], xlFormulas, , xlByRows, xlPrevious)

   For Each rng1 In Range([a1], Cells(rng2.row, "A"))
   If Application.WorksheetFunction.CountA(Rows(rng1.row)) = 0 Then
        MsgBox rng1.row & " is the first blank row"
        bFound = True
        Exit For
   End If
   Next rng1

   If Not bFound Then MsgBox rng2.Offset(1, 0).row & " is the first blank row"

   End Sub

答案 1 :(得分:0)

如果我误解了这个问题,请原谅我。

总计总是最后一排,因此您希望找到下一行。 我假设Totals更改了它所在的行,并且前面有空行。

为什么Totals的位置会发生变化?

我只是制作单元格,其中总数位于命名区域"总计":

enter image description here

然后,如果插入一些额外的行,我仍然可以到达Totals行:

enter image description here

所以在VBA中它的琐碎:

Sub Method2()

    MsgBox "Total named range is  " & ActiveSheet.Range("Totals").Address(0, 0)
    MsgBox "Next empty row is  " & ActiveSheet.Range("Totals").Row + 1

End Sub