vba - 无法获取worksheetfunction类的平均属性

标签 vba excel

嗨,我正在尝试编写 vba 来帮助我将每日数据转换为每周数据。我编写了这个 vba,但说无法获取工作表函数类的平均属性。有人可以帮我找出问题所在吗?谢谢!

Sub CopyData()
Dim z As Integer

  For z = 0 To 2000

   Set Rng1 = ActiveSheet.Range("D5:D11").Offset(7 * z, 0)

    Range("runningagain").Offset(z, 0) = Application.WorksheetFunction.Average(Rng1)

    Do Until IsEmpty(ActiveCell.Value)
      ActiveCell.Offset(1, 0).Select
    Loop

  Next z

End Sub

最佳答案

Excel 中的平均函数将生成#DIV/0!如果单元格为空,则会出错,因此您需要检查 rng1 是否为空。

当您取平均值时,最好使用 Count 而不是 CountA

If Application.WorksheetFunction.Count(Rng1) > 0 Then
    Range("runningagain").Offset(z, 0) = Application.WorksheetFunction.Average(Rng1)
End If

此外,您可能需要正确定义 Range("runningagain"),您的意思是 Range(runningagain) 吗?

关于vba - 无法获取worksheetfunction类的平均属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18164857/

相关文章:

vba - 事件依赖于带公式的单元格

excel - VBA 从 MS Access 获取值的 SUM,返回错误 : No Value Given For One or More Parameter

excel - 更改宏的默认图标

arrays - 将行范围传递给 Excel 用户定义函数并将其分配给数组

excel - 如何在超过 60000 行的文本框中快速显示结果

excel - 使用 SumProduct 的加权 AverageIFs 语句

arrays - VBA 数组可以存储单元格属性,如字体颜色或填充颜色吗?

vba - Excel VBA 按标题名称而不是列进行搜索

excel - 用于获取列中每个唯一值的范围的宏

arrays - 使用 Application.Match 数组 VBA 中最后一个元素的索引