如何在特定工作表上找到自上而下的第一个完全空行?
因为工作表在几个空行的末尾包含一个Totals行,所以我认为我不能简单地使用Range.End
属性并偏移1.
答案 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的位置会发生变化?
我只是制作单元格,其中总数位于命名区域"总计":
然后,如果插入一些额外的行,我仍然可以到达Totals行:
所以在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