尝试运行:
Sub cumleng()
Dim i As Integer, j As Integer
For i = 5 To 64
If IsEmpty(Cells(i, 2)) Then
Exit Sub
Else
For j = 3 To 64
If Cells(j, 9) = Left(Cells(i, 9), Len(Cells(i, 9)) - 1) Then
If IsEmpty(Cells(j, 6)) Then
Exit Sub
Else
Cells(i, 6) = Cells(j, 6) + Cells(i, 2)
End If
End If
Next j
End If
Next i
End Sub
然而,它没有按预期工作。没有任何东西被写入细胞(i,6)。救命?
以下是应该发生的事情: 对于每一行,在B列中都有一个数字,在第6列中有一个ID。我想为每一行输出该行和每个父行的B中数字的累积和。行的ID等于父ID的ID,并在末尾添加一个数字。我希望仅当分支在B列中有一个数字时才使用累积和,并且只有在父F在F列中有累积长度时才使用累积和。实际上,F列中没有输出任何内容。
答案 0 :(得分:0)
数字 123 不等于只看" 123" 的文字字符串。 Left函数返回的文本看起来像数字的第一个Len-1数字(例如 1234 变为" 123" );单元格包含一个真实数字(例如 123 )。
试一试,
'with both as numbers
If Cells(j, 9) = Int(Cells(i, 9) / 10) Then
'alternate with both as text
If CStr(Cells(j, 9)) = Left(Cells(i, 9), Len(Cells(i, 9)) - 1) Then