宏中的平均函数不返回值

Average function in macro not returning value

Dim XXXX as string

XXXX = Sheets("Sheet1").Application.WorksheetFunction.Average(Range("J7:J607")).value
Sheets("Log").Cells(2, "Z").value = XXXX

End Function

请看上面的宏。我需要 J 列中可用值的平均值,并且需要将该平均值粘贴到 "Log" sheet 中。但是该值没有返回,而是将其保留为空白单元格。但是代码运行正常,没有显示任何错误。

请帮我解决这个问题。

您正在尝试写入 Function 中的另一个单元格,然后我猜您是从工作表调用它?

改用 Sub。当然,您不能从工作表中调用它。

试试这个

Private Sub Sample()
    Dim XXXX As String

    With Sheets("Sheet1")
        XXXX = Application.WorksheetFunction.Average(.Range("J7:J607"))
        Sheets("Log").Cells(2, "Z").Value = XXXX
    End With
End Sub

如果您想使用一个函数并从工作表中调用它,请像这样使用它

Private Function GetAvg()
    GetAvg = Application.WorksheetFunction.Average(Sheets("Sheet1").Range("J7:J607"))
End Function

然后在单元格 Z2 中键入此

=GetAvg()

以下代码可以代替您当前的代码:

Dim XXXX As String

XXXX = Application.WorksheetFunction.Average(Range("J7:J607"))
Sheets("Log").Cells(2, "Z").Value = XXXX