平均命名范围中的列

时间:2018-04-23 19:18:22

标签: vba excel-vba excel

这个完整且全新的 - 但由于我的Excel VBA Programming for Dummies无法提供帮助,我希望你们都可以。

我有各种计划的员工每月评估分数。各种程序分为不同的工作簿。数据不同,员工数量逐月波动,所以我试图创建尽可能相对的公式(即没有特定的单元格)我每月重复这个函数并将滚动数据粘贴到后代的工作簿中,所以行开始更改以及每个月的行数。

那就是说,我正在使用一个命名范围(" April18")而我只需要" April18"中的一个列的平均值。我很可能每个月只更改命名范围并在我的宏中编辑它。

基本上,我如何得到B#B在指定范围内的平均值" April18"

代码:

 Do
    Dim x
    For x = 1 To 5
        ActiveCell.Select
        Selection.NumberFormat = "0\%"
        ActiveCell.Offset(0, 1).Activate
    Next x
    ActiveCell.FormulaR1C1 = "=SUM(RC[-5]:RC[-1])/100"
    Selection.Style = "Percent"
    ActiveCell.Offset(0, 1).Activate
    ActiveCell.FormulaR1C1 = "=IF(OR(RC[-1]>85%,RC[-1]=85%),""Pass"",""Fail"")"
    ActiveCell.Offset(1, -6).Activate
Loop Until ActiveCell.Value = ""

谢谢!

1 个答案:

答案 0 :(得分:1)

使用Application.WorksheetFunction.Index获取列

With Application.WorksheetFunction
    Dim Sm as Double
    Sm = .Average(.Index(Range("April18"),0,2))
    Debug.Print Sm
End with

其中2是您想要的命名范围的列号。