Range.offset属性

时间:2015-06-22 08:23:29

标签: excel-vba vba excel

我正在尝试理解VBA上的代码,以调试某人的VBA程序。 所以我想知道这是Range(Value).offset(x; y)的属性和含义。 这是我的代码:

`Sub initialise()
Dim i As Double, j As Double
For i = 0 To maxnodes - 1
For j = 0 To 1
    **If Range(initial_range).Offset(i, j) <> 0 Then**
       Range(Startrange).Offset(i, j) = Range(initial_range).Offset(i, j)
    Else
       Range(Startrange).Offset(i, j) = Empty
    End If
Next j
Next i

End Sub`
你能帮帮我吗?如果您需要更多详细信息,请不要存在

1 个答案:

答案 0 :(得分:0)

.Offset属性用于从指定位置移动某个位置。

使用方式如下:

ActiveSheet.Cells(1, 1).Offset(Row, Column)

其中正值将行值向下移动(按规定的数量),并向列值的右侧(按规定的数量)移动。负值以相反的方式移动。

因此,类似ActiveSheet.Cells(1,1).Offset(2, 0)ActiveSheet.Cells(1,1)表示单元格A1)的内容实际上是指cells(3, 1)A3

因此,在使用for循环和offset属性的代码中;代码正在使用所有不等于0的值创建一个新矩阵。(您还需要删除**才能使其运行)