Excel VBA系列之单元格方法OFFSET

Excel VBA中使用Range时,有一个OFFSET的动作属性,以Range单元格为基准进行左或右和上或下的偏移。

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

Sub 单元格操作2()

End Sub

2. 以A1单元格为基准,向右及下进行偏移。Offset的第一个参数是下移行数,第二个参数是右移列数。当为正数时,下移和右移;当为负数时,上移和左移。

3. 如图,下移两行,右移三列后,从A1单元格偏移至D3单元格。

Sub 单元格操作2()

Range("A1").Offset(2, 3).Select

End Sub

4. Offset的应用有很多,以下面一个示例说明:当班级为“A班”时,在其右侧一列的姓名以A+数字为编号姓名。

5. 添加一个for循环,从2开始到10结束(B2到B10单元格的范围)。

Sub 单元格操作2()

Dim i As Integer

For i = 2 To 10


Next

End Sub

6. 添加一个if判断,如果"B & i"单元格为“A班”,则其右侧单元格输入"A & i -1"。

Sub 单元格操作2()

Dim i As Integer

For i = 2 To 10

    If Range("B" & i) = "A班" Then


        Range("B" & i).Offset(0, 1) = "A" & i - 1


    End If


Next

End Sub

7. 执行以上代码后即可在“姓名”列得到相应的数据(注意先清空该列已有数据)。

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

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

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