4

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

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

4

3 回答 3

14

如果您确定只需要 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 程序员要了解的更重要的行之一,因为它允许您根据很少的标准动态选择范围,而不会被中间的空白单元格所困扰。

于 2013-10-08T04:46:58.147 回答
2

尝试这个:

Sub test()

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

End Sub

希望这对你有用。

于 2013-10-08T03:37:34.750 回答
1

这样做:

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

'prints the last empty row
Debug.Print c
于 2019-05-20T14:30:22.130 回答