本帖最后由 阳朔游游 于 2016-12-14 14:41 编辑
5、动态单元格区域的引用在VBA中,经常需要对原始数据进行统计。然而在大多数情况下,数据所占用的单元格区域并不是固定不变的,因而会给编写通用性较高的代码造成一些麻烦。那应该如何引用动态单元格区域,以使程序更具通用性呢? (1)、单元格对象的 End 属性返回一个 Range 对象,该对象代表包含源区域的区域尾端的单元格。相当于寻找以某个单元格为起点按组合键【Ctrl+方向键】所定位到的单元格。当起始单元格值不为空时,将找到该方向上最后一个非空单元格,当起始单元格值为空时,将找到第一个非空单元格。 按【F1】帮助得到End的语法: expression.End(Direction) expression 必需。该表达式返回“应用于”列表中的对象之一。 Direction XlDirection 类型,必需。所要移动的方向。 XlDirection 可为 XlDirection 常量之一。 常量 值 描述 xlDown -4121 向下 xlToRight -4161 向右 xlToLeft -4159 向左 xlUp -4162 向上 以下为通过End属性查找某行或某列最后一个有数据(即非空)的单元格代码: - Sub End属性()
- Cells(Rows.Count, "B").End(xlUp).Activate '激活B列最后一个非空单元格
- Cells(2, Columns.Count).End(xlToLeft).Activate '激活第2行最后一个非空单元格
- End Sub
复制代码
特别注意,End 属性返回的只能是可见单元格,一旦最后一行数据被隐藏了,则 End 属性将不会得到正确的结果,因而在使用 End 属性时需要格外小心。 |