Vba:使用动态范围查找百分比变化

时间:2014-01-29 18:55:01

标签: excel vba excel-vba range formula

我有三个数据范围:D14:F28,H14:J28和L14:N28。我写了一个宏,它在第14行附加了一年的新数据,它将范围增加到:D14:F29,H14:J29和L14:N29。

我正在尝试开发另一个宏来计算每个范围中每列的百分比变化,并将百分比从最后一个单元格中将两个单元格更改为其中的数据(例如D31中的(D14-D29)/ D29) )。问题是我需要公式是动态的,这样当下一年的数据附加到表中时,每个新范围中每列的百分比变化将从最后一个单元格中放入两个单元格,其中包含数据(例如D32中的(D14-D30)/ D30等。当使用宏时,下一年的数据会发生同样的事情,依此类推。

这是我提出的代码:

Sub Percent_change_Calculation()
iRow = 14
Cell_val = Cells(iRow, 4)

While Cell_val <> ""
    iRow = iRow + 1
    Cell_val = Cells(iRow, 4)
Wend
Cells(iRow + 1, 4) = "=(D14-iRow)/iRow"
End Sub

但它没有计算百分比变化和'#NAME?'在单元格中输入。从好的方面来说,它是在我希望它进入的单元格中。

提前感谢您的帮助,

1 个答案:

答案 0 :(得分:1)

Sub Percent_change_Calculation()

    With Cells(14, 4).End(xlDown)

        .Offset(2, 0).Formula = Replace("=(D14 -{a})/{a}", _
                               "{a}", .Address(False, False))
    End With

End Sub