乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>excel</em> VBA自定义函数如何进行数组计算-excel 自定义数组函数,自定

<em>excel</em> VBA自定义函数如何进行数组计算-excel 自定义数组函数,自定

作者:乔山办公网日期:

返回目录:excel表格制作


只能传 单元格,然后转数。如下 

Function MyTest(rng As Range)
    Dim arr() As Variant
   Set arr = rng.Value
    MyTest = UBound(arr)
End Function


Function F(mYrange As Range)
Dim myArr(1 To 5)
Dim mYr As Range
Dim i As Single
i = 1
For Each mYr In mYrange
myArr(i) = mYr.Value
i = i + 1
Next

F = myArr(1) + myArr(2) * myArr(3) + myArr(4) + myArr(5)

End Function

可以的。要点有两个:一是在自定义函数中定义一个数组来存放相关值,如dim a(2),然后对其赋值:a(1)=5,a(2)=10,并将数组值赋给函数。第二个要点是如何调用。调用时,需定义一个变体变量,如 dim c As Variant。假设自定义函数的函数名是 d,则调用可写作
c=d(相应参数)
这时,c(1)=5,c(2)=10

你这个要求不能实现啊,我用了ParamArray 关键字,用来指定一个 任意元素e79fa5e98193e58685e5aeb9332个数 的数组
共参考:
---------
Function shuzu(ParamArray x())
Application.Volatile
Dim i, n, m, tmp
n = UBound(x) - LBound(x) + 1
If n Mod 2 <> 0 Then tmp = "#Err_x()": GoTo 1000
n = n / 2
m = LBound(x)
For i = 1 To n
tmp = tmp + x(m + i - 1) * x(m + i - 1 + n)
Next
1000:
shuzu = tmp
End Function
-----------
输入公式的时候,需要 成对 的元素,套用你的公式如下:
=shuzu((K5,L5,M7,N9),(M13,L15,K13,M17))
可以输入任意 成对的 元素,比如使用10个参数:
=shuzu((K5,L5,M7,N9,M10),(M13,L15,K13,M17,N20))

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网