Excel VBA - 选择范围以持续完全空行

时间:2016-10-05 19:31:06

标签: excel vba excel-vba

我有一些VBA代码需要选择从A84到X的范围。我正在使用此代码选择该范围到数据的最后一行。

Dim Lastrow As Integer
Lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

Range("A84:X" & Lastrow).Select

在第一行停止,A列中有一个空白单元格。我需要它来检查A到Z列,而不仅仅是A.例如,如果第84行到第94行的A列中有值,但对于第95行,只有F或R列中的数据,它将不包括第95行。如何查看A:Z列以确定该行是否为空?

4 个答案:

答案 0 :(得分:2)

只需将Lastrow设置为

即可
Lastrow = Range("A:Z").Find("*", , , , xlByRows, xlPrevious).Row

答案 1 :(得分:0)

我几乎可以肯定有一种更好的方法,但是有一种方法是遍历你的列并找到每一列的最后一行,然后确定哪一行是最好的。

maxRow = 0
for i=1 to 24 'A through X
    if maxRow < ActiveSheet.Cells(Rows.Count, i).End(xlUp).Row then
        maxRow = ActiveSheet.Cells(Rows.Count, i).End(xlUp).Row
    end if
next i

然后maxRow就是你想要的lastrow

答案 2 :(得分:0)

您可以遍历所有列并比较每列的最后一行。然后,只要找到包含更多行的列,就可以更改lastRow变量:

Dim i As Integer
Dim lastRow As Integer
lastRow = 1
For i = 1 To 26
    Dim lst As Integer
    lst = Cells(Rows.Count, i).End(xlUp).Row
    If lst > lastRow Then
        lastRow = lst
    End If
Next
Range("A84:X" & lastRow).Select

答案 3 :(得分:0)

您可以使用usedrange函数,该函数返回工作表中使用过的单元格的完整范围:,如下所示:

工作表(“worksheetName”)。UsedRange.lastRow

这将为您提供最后一个使用的行,而不仅仅是第一列中包含数据的最后一行