Vba 对指定范围内的列求平均值

Vba 对指定范围内的列求平均值,vba,excel,Vba,Excel,这方面完全是新手,但由于我的Excel VBA傻瓜编程帮不上忙,我希望你们都能 我每个月都会对不同项目的员工进行评估。各种程序被分解成不同的工作簿。数据不同,员工数量每月波动,因此我尝试创建尽可能相对的公式(即没有特定的单元格)。我每月重复此功能,并将滚动数据粘贴到工作簿中,以供后代使用,因此行开始以及每个月的行数都会发生变化 也就是说,我使用的是一个命名范围(“April18”),我只需要“April18”中一列的平均值。我很可能只是每月更改命名范围,并在宏中编辑该范围 基本上,如何在命名的“

这方面完全是新手,但由于我的Excel VBA傻瓜编程帮不上忙,我希望你们都能

我每个月都会对不同项目的员工进行评估。各种程序被分解成不同的工作簿。数据不同,员工数量每月波动,因此我尝试创建尽可能相对的公式(即没有特定的单元格)。我每月重复此功能,并将滚动数据粘贴到工作簿中,以供后代使用,因此行开始以及每个月的行数都会发生变化

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

基本上,如何在命名的“April18”范围内获得B:B的平均值

代码:

 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 = ""

谢谢大家!

使用Application.WorksheetFunction.Index获取列

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

其中
2
是所需命名范围的列号。

嗨,斯科特-感谢您的帮助!不幸的是,你的计算对我不起作用。我试图把平均数排在“2018年4月”最后一行的下面。我不确定这是否会改变你的答案。我需要学习如何发布宏,看看这是否有帮助。只需使用edit将代码放在原始帖子中。然后高亮显示它并按Ctrl-k将其格式化为代码。如果您不能,有人会帮助设置格式。我还应该说,我已经在我上次计算后使用偏移量进行计算的单元格中。这只是一个示例,您可以简单地将
Sm
中的值分配给您想要的任何单元格。不要在注释中发布代码,请在原始帖子中发布。