【发布时间】:2020-09-07 13:49:09
【问题描述】:
希望这个问题以前没有被问过或者太愚蠢了。
我正在尝试做我认为相对简单的 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
但是,尽管 0 条件没有得到满足,但 1 不会延续,并且 1 之后的单元格变为 0。有什么建议吗?
编辑: 这是它的一部分没有做我想要的,在最后两行中,第二个条件没有完成,但第五列仍然为 0。我希望宏从上面的单元格复制 1 直到第二个条件满足。
【问题讨论】:
-
能否请您举例说明您的矩阵数据(之前)和您想要的矩阵数据结果(之后)?
-
您告诉您的宏检查第 3 行和第
i列是否等于 1,然后第 5 行和第i列等于 1。如果第 2 行和第i列等于 9,则第 5 行和列i等于0。否则.. 第5 行列i等于第5 行,列i - 1。对于 excel 及其数组a(x, y)表示x = row和y = column。 -
我在原帖中贴了一个矩阵的sn-p,希望你明白我的意思。谢谢达米安,我不知道,但如果我没有遗漏一些不应该影响发布代码功能的东西,除非我遗漏了什么。
-
@erikdansle19 您正在循环矩阵中的所有列,一遍又一遍地更改相同的“单元格”,因此您需要更改代码以遍历所有行。