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. 执行以上代码后即可在“姓名”列得到相应的数据(注意先清空该列已有数据)。
以上示例只是用于演示,实际应用场景请根据自己的需要进行相应的设计或调整。