VBA转到最后一个空行

VBA转到最后一个空行,vba,excel,Vba,Excel,我有一个excel宏上的项目,我需要突出显示下一个最后一行的空值。示例单元格A1:A100有数据,下一个单元格A101为空 用户单击按钮时,应突出显示单元格A101…尝试以下操作: Sub test() With Application.WorksheetFunction Cells(.CountA(Columns("A:A")) + 1, 1).Select End With End Sub 希望这对您有用。如果您确定只需要A列,则可以使用VBA中的End函数来获得该结果 如果所

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

用户单击按钮时,应突出显示单元格A101…

尝试以下操作:

Sub test()

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

End Sub

希望这对您有用。

如果您确定只需要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程序员知道的更重要的一条线,因为它允许您基于非常少的标准动态选择范围,并且不被中间的空白单元所困扰。

< P>这是:

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

'prints the last empty row
Debug.Print c
Do
c=c+1
循环While单元格(c,“A”)。值“”
'打印最后一个空行
调试.打印c

如果我从一个特定的专栏开始,比如A13:A1000,这比前面的例子快吗?Maycow Moura,我不得不祝贺你优雅的简洁!诗非常感谢。请注意,在一张纸上的单元格中循环是迄今为止最慢的方式。非常糟糕的编程风格,请不要这样做。此外,如果中间有空单元格,则打印比第一个空单元格高的第1行,而不是底部的第一个空单元格。