- Sub test()
- Dim r%, i%
- Dim arr, brr, zrr()
- With Worksheets("sheet1")
- r = .Cells(.Rows.Count, 1).End(xlUp).Row
- .Range("d2:d" & r).ClearContents
- arr = .Range("a2:d" & r)
- xm = ""
- For i = 1 To UBound(arr)
- If arr(i, 1) <> xm Then
- m = m + 1
- ReDim Preserve zrr(1 To 2, 1 To m)
- zrr(1, m) = i
- zrr(2, m) = i
- xm = arr(i, 1)
- Else
- zrr(2, m) = i
- End If
- Next
- For k = 1 To UBound(zrr, 2)
- For i = zrr(1, k) To zrr(2, k)
- If i = zrr(1, k) Then
- arr(i, 4) = arr(i, 3)
- Else
- arr(i, 4) = arr(i - 1, 4) * 0.9 + arr(i, 3)
- End If
- Next
- Next
- .Range("a2").Resize(UBound(arr), UBound(arr, 2)) = arr
- End With
- End Sub
复制代码 |