1.A列是文本,B列是数据,结果数据在C列。
2.要求当A列值是相同文本时,就累加B列数据到C列;如果A列值是不同文本时,结果
数据C列等于B列数据。
3. 初值C2等于B2,那么C3的值有以下两种可能。
如果A3的值等于A2,那么C3的值就等于B3+C2
如果A3的值不等于A2,那么C3的值就等于B3
以此类推。
要求C列的值先放在数组里,程序运行完成后再将值一次性赋值给C列。
A列值相同的都连续的,即数据已经按A列排过序了
追答sub 特殊求和()
b = [a65536].End(xlUp).Row
For u = 1 To b
i=1
do
i=i+1
loop until cells(i+u,1).valuecells(i,1).value and cells(u,1).value""
cells(u,3)=Application.WorksheetFunction.Sum(range(cells(u,2),cells(u+p-1,2)))
i=i+p-1
next i
end sub
只是在记事本里简单写了下思路。调试的时候改一下就好了。
不好意思,我是初学者,经调试失败,请提供完整的代码,谢谢!
追答可以发我邮箱表样式,[email protected],大概今天8点左右能回复你,白天工作比较忙。
Sub 按公式算法()
Application.ScreenUpdating = False
Range("e:e") = Empty
a = Range("a65536").End(xlUp).Row
Cells(2, 5).Value = Cells(2, 3).Value
For i = 3 To a
If Cells(i, 1).Value = Cells(i - 1, 1).Value Then
Cells(i, 5).Value = Cells(i - 1, 5).Value + Cells(i, 3).Value
Else
Cells(i, 5).Value = Cells(i, 3).Value
End If
Next i
Application.ScreenUpdating = True
MsgBox "计算完毕!"
End Sub