定义一个excel里面的vba函数? 255
输入是一列数字,输出是一个值。需要编写一些函数,在输入一个框定的范围后,直接通过vba函数得出输出的值。输入的数据是非负的数。中间运算过程(仅为表达清楚该过程):1.输入...
输入是一列数字,输出是一个值。需要编写一些函数,在输入一个框定的范围后,直接通过vba函数得出输出的值。输入的数据是非负的数。中间运算过程(仅为表达清楚该过程):1. 输入数据的和为Sum2. 每一个数据除以Sum的值为pi3. 计算所有的pi*log(pi),并求和(log的底数为2)4. 输出值为3结果的相反数。输入输出数据及过程,见图
展开
2个回答
展开全部
Function logsum(rng As Range)
Dim arr
Dim brr
Dim i As Long
Dim su
If rng.Count > 0 Then
logsum = Application.Sum(rng)
ReDim arr(1 To rng.Count)
ReDim brr(1 To rng.Count)
For i = 1 To rng.Count
arr(i) = rng(i).Value / logsum
brr(i) = Log(arr(i)) / Log(2) * arr(i)
su = su + brr(i)
Next
logsum = Abs(su)
End If
End Function
'自定义函数放入模块中
'引用示例:=logsum(J3:J7)
Dim arr
Dim brr
Dim i As Long
Dim su
If rng.Count > 0 Then
logsum = Application.Sum(rng)
ReDim arr(1 To rng.Count)
ReDim brr(1 To rng.Count)
For i = 1 To rng.Count
arr(i) = rng(i).Value / logsum
brr(i) = Log(arr(i)) / Log(2) * arr(i)
su = su + brr(i)
Next
logsum = Abs(su)
End If
End Function
'自定义函数放入模块中
'引用示例:=logsum(J3:J7)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询