【发布时间】:2020-07-10 08:02:28
【问题描述】:
我有一个名称列表(A 列),B 到 F 列中的数字是公式的结果。我正在尝试创建一个 FOR LOOP 代码来检查 B 到 F 列,如果 B 到 F 中的所有单元格都为零,那么代码应该忽略当前行并跳到下一行;如果 B 到 F 列中的任何单元格大于 0,则代码应在 A 列中获取相应的名称。
示例: 如果 B2、C2、D2 和 E2 中的任何一个单元格大于 1,那么我应该得到 A2 的名称/值。如果 B2、C2 中的所有单元格。 D2 和 E2 都为零,然后继续检查下一行并做同样的事情。
这是我用来尝试获取任何 4 列单元格值大于 1 的名称的代码
For i = 2 To LastCalcAnalystRowIndex '//wsCalculations.Cells(Rows.Count, "CP").End(xlUp).Row
'//Get Component from cell in column "BP"
Analyst = wsCalculations.Cells(i, "CP").Value
Component = wsCalculations.Cells(i, "CN").Value
weeknumber = wsCalculations.Range("BR2").Value + 3
If wsCalculations.Cells(i, "B").Value = 0 And wsCalculations.Cells(, "C").Value = 0 _
And wsCalculations.Cells(i, "D").Value = 0 And wsCalculations.Cells(i, "E").Value = 0 _
And wsCalculations.Cells(i, "F").Value = 0 Then
Exit For
Else
wsCalculations.Cells(i, "A").Value = wsCalculations.Cells(i, "CP").Value
End If
Next
使用上面的代码,我尝试获取所有 4 列值都不等于零的名称,但我得到的结果只是原始列表的副本。我突出显示了我希望我的代码跳过的行。我还包括了我得到的结果和我想要得到的结果。 下面是一个示例数据。我的原始数据有 54 行。 。 谁能告诉我我哪里出错了?
【问题讨论】:
标签: excel vba loops for-loop if-statement