我有这样的布局:
0
0
0 5
1 6
1
0 7
1 8
1
0
0 9
1 10
1
0 11
1 12
以上是包含000, 001, 010, 011 to 111
组合的列表。这些组合都有一定的值,从5到12。
(输入是新行,空格是单元格,5, 6, 7, etc.
位于新列中.0和1都在同一列中。)
现在我需要得到第一个0/1为1的所有值的总和,即第二个0/1为1的所有值的总和,以及最后一个值的相同值。这种情况下的结果必须是:42, 38 and 36
我无法找到如何正确编程。我希望有这样的事情:
While not Sheets("Sheet 1").Cells(j, 1).indentlevel(2).Value = 0
sum = sum + cells(j,2)
j = j + 1
Wend
但显然这不起作用。我无法在没有循环的情况下全部编程,因为代码最多可以有5个小部件(例如01101)
答案 0 :(得分:0)
你有没有想过使用for循环?另外我认为您使用的是IndentLevel
syntax incorrectly.
With ThisWorkbook.Sheets("Sheet 1")
set rng = Range(.cells(1,1), .cells(3,10)) ' Change this to match your range
End With
For each c in rng
If c.IndentLevel = 2 Then
sum = sum + c
End If
Next c
答案 1 :(得分:0)
这不需要VBA。真正的问题是不合适的数据格式。更新您的约定,以便将每个缩进级别移动到单独的列。然后,您就可以继续使用简单的Excel公式。