在EXCEL中插入缺less的行和值

我有下面的表格:

Date Value Date Diff Hours Diff 29/12/2014 8:00 24.940 29/12/2014 9:00 24.960 0.04 1 29/12/2014 11:00 25.020 0.08 2 29/12/2014 12:00 25.070 0.05 1 

通过减去Date列( =A2-A1 )中的行的值来计算Date DifF列。 Hours Diff是通过将Date DifF乘以24( =C2*24 )来计算的。 如果Hours Diff的值大于1,我希望在正确的行插入额外的小时数,所以每小时会有一行。 例如,第三行添加了Date (29/12/2014 10:00)的缺失值:

 Date Value Date Diff Hours Diff 29/12/2014 8:00 24.940 29/12/2014 9:00 24.960 0.04 1 29/12/2014 10:00 1 29/12/2014 11:00 25.020 0.08 1 29/12/2014 12:00 25.070 0.05 1 

之后,我想填写并更正列的值: ValueDate Diff 。 该Value等于值的差值除以新行数+ 1( B4-B2/2(25.020 - 24.960)/2 ,等于0.03 。 新的表格将是:

 Date Value Date Diff Hours Diff 29/12/2014 8:00 24.940 29/12/2014 9:00 24.960 0.04 1 29/12/2014 10:00 24.990 0.03 1 29/12/2014 11:00 25.020 0.03 1 29/12/2014 12:00 25.070 0.05 1 

当你插入或删除行时,记住你需要从底部开始并向顶部工作。 如果您尝试从上到下,您将不可避免地跳过行或循环遍历已经覆盖的行。

 Sub insertHourly() Dim rw As Long, hr As Long, hrs As Long With Worksheets("Sheet2") For rw = (.Cells(Rows.Count, 1).End(xlUp).Row - 1) To 2 Step -1 hrs = Round((.Cells(rw + 1, 1).Value2 - .Cells(rw, 1).Value2) * 24, 0) For hr = 2 To hrs .Cells(rw + 1, 1).EntireRow.Insert .Cells(rw + 1, 1) = .Cells(rw + 2, 1) - TimeSerial(1, 0, 0) .Cells(rw + 1, 4) = 1 Next hr Next rw End With End Sub 

insert_hours
在插入小程序之前

insert_hours_results
插入后,