您好我正在尝试编写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
答案 0 :(得分: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)
吗?