复制VBA中For循环上一次迭代的值



希望这个问题以前没有人问过,或者太愚蠢了。

我正在尝试做我认为相对简单的VBA任务,遍历矩阵并根据在其他列中可以找到的值填写一列。如果不满足特定的标准,我想复制前一行的值。

这是我认为可行的:

For i = 1 To n
If a(3, i) = 1 Then
a(5, i) = 1
ElseIf a(2, i) = 9 Then
a(5, i) = 0
Else
a(5, i) = a(5, i - 1)
End If
Next i

然而,1不会继续,1之后的单元格变为0,尽管不满足0条件。有什么建议吗?

编辑:这是它的一部分,没有做我想做的,在最后两行中,第二个条件没有完全填充,但第五列仍然为0。我希望宏从上面的单元格复制1,直到满足第二个条件。

矩阵

试试这个:

For i = 1 To n
If a(i, 3) = 1 Then 'if row i column 3
a(i, 5) = 1
ElseIf a(i, 2) = 9 Then 'elseif row i column 2
a(i, 5) = 0
Else 'else which will only trigger if none of the ones before trigger
a(i, 5) = a(i - 1, 5)
End If
Next i

最新更新