Office学院问题解答系统 > Excel电子表格 > 公式与函数 > EXCEL问题:求教自定义函数?
已解决
EXCEL问题:求教自定义函数? 定义,引用,变量,参数,问题
悬赏分:0 - - 阅读次数: 举报
查询了一些自定义函数的例子都是单变量的。自定义函数能否建立"(As Range) As Interger"的函数,应该可以的,请各位大师赐教!请以"∑x2"为例,万分感谢!(该用"For Each ...Next",就是还不知道如何引用Range中的每个值,请高手指点。)

又问:试了一天,还是不行。
Public Function x2(rng As Range) As Integer
Dim rng As Range
Dim ivalue As Integer
For Each rng In rng.Range
ivalue = ivalue + rng.value ^ 2
Next
x2 = ivalue
End Function
还望您的帮助。
提问者:pengyou - 小学生 2级
最佳答案
举报  楼层: 1
解答:参数使用Range而函数值为Integer是可以的
用for each next循环思路也是对的,应该这样作:
dim rg as range
dim ivalue as integer
for each rg in 参数区域
ivalue=ivalue+rg.value
next
函数=ivalue
大概意思如此,但没有加入防错处理,你自己先试试看,有问题在问。


解答:Public Function SUMX2(rng As Range) As Integer
'你的错误有几项:
'1.函数名不能使用单元格位址的形式,否则在工作表中引用函数产生歧义,excel以为你引用单元格
'2.参数名与内部变量名冲突,rng本来是定义参数,在过程中不应出现重名变量
'3.rng已被定义为range对象变量,实际意义是一range引用,不能再用rng.Range引用,range的range属性是什么呢,没有吧
'函数我已经给你改了,基本能用
Dim rg As Range
Dim ivalue As Integer
For Each rg In rng
ivalue = ivalue + rg.value ^ 2
Next
SUMX2 = ivalue
End Function
结果:调试成功!,非常感谢!
回答者:zhang - 幼儿园 1级 - 提交时间:2007-7-5 16:38:00

我也要给他一个好评0  我要给他一个坏评0    点击左边的图片给他一个评价吧
共 0 条答复
对最佳答案的评论

评论字数在200 字以内
  好评 坏评