是否可以 运行 数组而不是单元格范围的工作表函数?

Is it possible to run worksheet functions on arrays rather than cell ranges?

例如,不是在下面的示例中查找单元格范围的标准差,而是可以将相同的函数应用于数组的元素吗?

我可以将所有数组元素复制到一个工作 sheet,但希望有一个更干净的解决方案。

Set myRange = ActiveSheet.Range("h3:bm3")
answer = Application.WorksheetFunction.StDev(myRange)

是的,StDev 可以与数组一起使用。

一维数组:

Dim x As Variant
x = Array(1, 2, 3, 4)
    
Debug.Print WorksheetFunction.StDev(x) ' returns 1.29099444873581

二维数组:

Dim x As Long
ReDim x(1 To 10, 1 To 10)
    
Dim i As Long, j As Long
For i = 1 To 10
    For j = 1 To 10
        x(i, j) = i
    Next
Next
    
Debug.Print WorksheetFunction.StDev(x) ' returns 2.88675134594813

Arguments of StDev can either be numbers, arrays, or references that contain numbers.

根据此帮助信息,应该可以将相同的函数应用于数组的元素。