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 - 知乎

你可能感兴趣的:(Excel VBA系列之单元格方法End)