用户定义的函数接受可变大小的用户选择的数组
User defined function to accept variable sized user selected array
不确定是否可行,而且我找不到说明如何执行此操作的具体问题。我基本上是想编写一个像 SUM(或 Excel 中的任意数量的函数)一样工作的函数。用户可以从电子表格调用该函数,并且 select 来自 SS 的可变大小的一维数字集作为参数。出于说明目的,我尝试编写以下测试函数来学习如何执行此操作:
函数测试(tester() As Double) As Double
MsgBox "array position 1 = " + 测试人员(1)
测试 = 测试员 (1)
结束函数
这只是我试图让它发挥作用的一种表现形式,但无论何时我从 SS 选择数据作为我的函数的参数,它都会使单元格变为“#Value”。我在想我需要对范围做一些聪明的事情,但我对此很陌生。值得注意的是,我可以在代码中在幕后函数周围传递数组,但无法掌握允许用户 select 来自 SS 的数据。感谢您的帮助!
尝试这样的事情
Public Function TestFunc(TestRange As Range) As Variant
Dim vArray As Variant
vArray = TestRange.Value2
If IsArray(vArray) Then
TestFunc = vArray(1, 1)
Else
TestFunc = vArray
End If
End Function
不确定是否可行,而且我找不到说明如何执行此操作的具体问题。我基本上是想编写一个像 SUM(或 Excel 中的任意数量的函数)一样工作的函数。用户可以从电子表格调用该函数,并且 select 来自 SS 的可变大小的一维数字集作为参数。出于说明目的,我尝试编写以下测试函数来学习如何执行此操作:
函数测试(tester() As Double) As Double
MsgBox "array position 1 = " + 测试人员(1) 测试 = 测试员 (1) 结束函数
这只是我试图让它发挥作用的一种表现形式,但无论何时我从 SS 选择数据作为我的函数的参数,它都会使单元格变为“#Value”。我在想我需要对范围做一些聪明的事情,但我对此很陌生。值得注意的是,我可以在代码中在幕后函数周围传递数组,但无法掌握允许用户 select 来自 SS 的数据。感谢您的帮助!
尝试这样的事情
Public Function TestFunc(TestRange As Range) As Variant
Dim vArray As Variant
vArray = TestRange.Value2
If IsArray(vArray) Then
TestFunc = vArray(1, 1)
Else
TestFunc = vArray
End If
End Function