如何使用VBA在具有动态范围的动态单元格中创建= AVERAGE公式?

时间:2018-11-26 20:14:58

标签: excel vba

我正在尝试编写一个Sub,以便每次运行宏时都可以替换公式。

我可以选择要使用的范围:

Range("A3").Select
Selection.End(xlDown).Select
Range("B5", ActiveCell.Offset(-1, 1)).Select

然后我可以使用以下命令找到要在其中使用公式的单元格:

Range("A3").Select
Selection.End(xlDown).Select
ActiveCell.Offset(2, 1).Activate

有没有一种方法可以使公式写成=AVERAGE([selected range])

注意:我不想只在单元格中包含值。我需要它,所以有一个显示结果的有效公式。

1 个答案:

答案 0 :(得分:3)

似乎您正在尝试执行以下操作:

Dim lrows As Long

lrows = Range("A3").End(xlDown).Row - 1

Range("A" & lrows + 1).Formula = "=AVERAGE(B5:B" & lrows & ")"

您应该避免在代码中使用SELECT ing和ACTIVATE ing单元格,这样会减慢其速度并降低其可靠性。