Excel VBA – select范围为完全空白行

我有一些VBA代码,需要select范围从A84到X.我使用这段代码来select数据的最后一行的范围。

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来判断行是否为空?

简单地设置Lastrow

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

我只能肯定有一个更好的方法,但是一个这样的方法是循环遍历你的列,find每一列的最后一行,然后确定哪一个是最大的。

 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就是你想要的。

您可以遍历所有列并比较每列的最后一行。 您可以随时更改lastRowvariables,只要find具有更多行的列,如下所示:

 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 

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

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

这会给你最后一个使用的行,而不仅仅是第一列数据的最后一行