2

您好我正在尝试编写 vba 来帮助我将每日数据转换为每周数据。我写了这个 vba 但说unable to get the average property of the worksheetfunction class。有没有可能有人可以帮我找出问题所在?谢谢!

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
4

1 回答 1

3

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)

于 2013-08-10T20:45:43.377 回答