在VBA的excel平均不同的长度范围
我正在尝试编写一个简短的macros,其中包含一行代表一组单元格的平均值。 在每个工作表中,我想要在单元格范围内运行macros是不同的长度。
运行macros后,单元格E1包含"=AVERAGE(Rng)"
Dim homeSheet As Worksheet Set homeSheet = ActiveSheet Dim lastRow As Long Dim Rng As Range lastRow = Range("A" & Rows.Count).End(xlUp).Row Set Rng = Range("B2:B" & lastRow) Range("E1").Formula = "=Average(Rng)" Range("E2").Formula = "=STDEV(Rng)" Range("E3").Select ActiveWindow.SmallScroll Down:=-2 End Sub
我也试过了
Range("E1").Formula = "=Average(Range("B2:B" & lastRow))"
而不尝试使用Set Rng = Range("B2:B" & lastRow)
你需要在你的公式中使用Rng.Address
。 尝试将您的代码更改为:
Sub Avg() Dim homeSheet As Worksheet Set homeSheet = ActiveSheet Dim lastRow As Long Dim Rng As Range lastRow = Range("A" & Rows.Count).End(xlUp).Row Set Rng = Range("B2:B" & lastRow) Range("E1").Formula = "=Average(" & Rng.Address & ")" Range("E2").Formula = "=STDEV(" & Rng.Address & ")" Range("E3").Select End Sub
如果您要使用您尝试的第二种方法,则需要将该行代码更改为:
Range("E1").Formula = "=Average(" & Range("B2:B" & lastRow).Address & ")"