VBA转到最后一个空行

时间:2013-10-08 03:30:34

标签: excel vba excel-vba

我在excel宏上有一个项目,我需要突出显示具有空值的下一行。示例单元格A1:A100有数据,下一个单元格A101为空。

当用户点击按钮时,它应突出显示单元格A101 ...

3 个答案:

答案 0 :(得分:13)

如果您确定只需要A列,则可以在VBA中使用End函数来获得该结果。

如果所有单元格A1:A100都已填满,则选择下一个空单元格使用:

Range("A1").End(xlDown).Offset(1, 0).Select

此处,End(xlDown)相当于选择A1并按Ctrl +向下箭头。

如果A1:A100中有空白单元格,那么您需要从底部开始并继续前进。你可以通过结合使用Rows.Count和End(xlUp)来实现这一点,如下所示:

Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select

更进一步,这可以推广到选择一系列单元格,从您选择的点开始(不仅仅是在A列中)。在下面的代码中,假设您在单元格C10:C100中有值,其间插入空白单元格。您希望选择所有单元格C10:C100,不知道该列是否在第100行结束,首先手动选择C10。

Range(Selection, Cells(Rows.Count, Selection.Column).End(xlUp)).Select

以上这一行可能是VBA程序员最重要的一句话,因为它允许你根据很少的标准动态选择范围,而不会被中间的空白单元格所困扰。

答案 1 :(得分:2)

试试这个:

Sub test()

With Application.WorksheetFunction
    Cells(.CountA(Columns("A:A")) + 1, 1).Select
End With

End Sub

希望这适合你。

答案 2 :(得分:0)

做到这一点:

Do
   c = c + 1
Loop While Cells(c, "A").Value <> ""

'prints the last empty row
Debug.Print c