跳到主要内容

获取最后一个空单元格

使用 VBA 向工作表写入数据时,经常需要在最后一个空行或列写入数据,要取得指定行或列中最后一个空单元格,一般使用 Range 对象的 End 属性,在取得单元格对象后便能够获得该单元格的相关属性,如行号、列标或数值等。

取得 A 列最后一个空单元格

Dim LastBlankRow As Integer
LastBlankRow = Cells(Rows.Count, 1).End(xlUp).Row + 1

Cells(Rows.Count, 1).End(xlUp) 相当于我们选择 A 列最后一个单元格,再按 Ctrl+,得到最后一个非空单元格。

Cells(Rows.Count, 1).End(xlUp).Row 得到 A 列最后一个非空单元格的行号。最后一个非空单元格的行号加1就是最后一个空单元格的行号。

注意:如果 A 列全部为空单元格,LastBlankRow 变量得到的结果是 2,虽然 A1 也是空单元格。

取得第一行最后一个空单元格

Dim LastBlankColumn As Integer
LastBlankColumn = Cells(1, Columns.Count).End(xlToLeft).Column + 1

注意:如果第一行全部为空单元格,LastBlankColumn 变量得到的结果是 2,虽然 A1 也是空单元格。

取得 A 列最后一个非空单元格

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

注意:如果 A 列全部为空单元格,LastRow 变量得到的结果是 1,虽然 A1 也是空单元格。

取得第一行最后一个非空单元格

Dim LastColumn As Integer
LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column

注意:如果第一行全部为空单元格,LastColumn 变量得到的结果是 1,虽然 A1 也是空单元格。

Range 对象的 End 属性

Range 对象的 End 属性返回 Range 对象,该对象代表包含源区域的单元格引用区域尾端的单元格,当指定的 Range 对象为多单元格区域时,默认为左上角单元格。

End 属性的语法格式如下:

End (Direction)

其中,参数 Direction 指定所要移动的方向,可为下表列举的 XIDirection 常量之一。

XlDirection 常量
XlDirection 常量 说明
xlDown -4121 向下,相当于按 Ctrl+
xlToLeft -4159 向左,相当于按 Ctrl+
xlToRight -4161 向右,相当于按 Ctrl+
xlUp -4162 向上,相当于按 Ctrl+

评论

您的电子邮件地址不会显示出来。*号为必填项。