我正在尝试完成我的功能,其中从活动单元格上方的值中取平均值。 N是要平均的活动单元上方的单元数的输入数。
我遇到的问题是,这将占用活动单元上方N个隐藏或可见单元的平均值。我希望此功能只设置可见单元格的范围。
我正在尝试合并“ .SpecialCells(xlCellTypeVisible)”,但无法使其正常工作。我也避免使用子例程。
Function MovingAVG_S2S(rng As Range, N As Integer) As Variant
Dim rng2 As Range
If rng <> 0 Then
Set rng2 = rng.Offset(1 - N, 0).Resize(N, 1)
MovingAVG_S2S = Application.WorksheetFunction.Average(rng2)
Else
MovingAVG_S2S = ""
End If
编辑1
作为参考,我对P列中的值取平均值,包含该函数的单元格将在R列中。
我想使用该函数将单元格上方的“ N”个值取平均值。
即,输入N = 90,并在单元格R100中使用该函数,我希望R显示范围P9:P99的平均值。
Function MovingAVG_S2S(ByVal top As Range, n As Long)
Dim sr As Long, sc As Long, er As Long, ec As Long
sr = top.Row
sc = top.Column
er = ActiveCell.Row
ec = ActiveCell.Column
MovingAVG_S2S = Application.Subtotal(101, Range(Cells(er - n, sc), Cells(er - 1, sc)))