Excel VBA系列之单元格方法End

Excel VBA中使用Range时,有一个End属性,以Range单元格为基准定位到其上、下、左、右最后一个有数据的单元格。

1. 打开Visual Basic,添加模块和过程,称之为“单元格操作3”。

Sub 单元格操作3()

End Sub

2. 以A100单元格为基准(实际案例中数据量大的情况可以最后一个单元格为准),定位到A列中最后一个数据所在的单元格。

3. 如图所示,输入Range后接End属性,End之后会自动提示方向参数选哪个。

4. 示例中我们选择向上的方向,并且用Select选中所定位的单元格。

Sub 单元格操作3()

Range("A100").End(xlUp).Select

End Sub

5. 回到上一篇文章中的案例,在B列中判断如为“A班”时,则在其右侧一列输入姓名编号。

Excel VBA系列之单元格方法OFFSET - 简书

这次我们用for each循环,在数据固定的时候,我们可以直接写出循环的范围,如图。

Sub 单元格操作3()

Dim rng As Range

For Each rng In Range("A2:A10")

Next

End Sub

6. 如果B列之后还要继续添加数据,则需要不断地修改上面代码的范围,这时我们就可以用到End属性,如图。

Sub 单元格操作3()

Dim rng As Range

For Each rng In Range("B2:B" & Range("B100000").End(xlUp).Row)

Next

End Sub

Range("B100000").End(xlUp).Row返回的值是B列最后一个数据所在单元格所在的行号。

7. 添加if判断的语句在for each循环里。

Sub 单元格操作3()

Dim rng As Range

For Each rng In Range("B2:B" & Range("B100000").End(xlUp).Row)

    If rng = "A班" Then


        rng.Offset(0, 1) = "A" & rng.Row - 1


    End If

Next

End Sub

8. 执行以上代码后,即可在C列得到相应的数据。

以上示例只是用于演示,实际应用场景请根据自己的需要进行相应的设计或调整。

参考视频:Excel VBA系列之单元格属性End - 知乎

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容