'假设工作表名称为sheet1,第一个有效数据从C4开始,未作错误判断 Option Explicit Sub test() With Sheets("sheet1") Dim arr, brr(), i, j arr = .Range("c4:c" & .[c65536].End(xlUp).Row) ReDim brr(1 To UBound(arr, 1) - 1, 1 To 2) For i = 2 To UBound(arr, 1) brr(i - 1, 1) = arr(i - 1, 1) - arr(i, 1) If i = 2 Then brr(i - 1, 2) = brr(i - 1, 1) Else brr(i - 1, 2) = brr(i - 2, 2) + brr(i - 1, 1) End If Next .[d5].Resize(UBound(brr, 1), UBound(brr, 2)) = brr End With End Sub