Excel VBA常见问题:自定义函数如何使用?

2015-04-13 17:42 阅读 155 次 评论关闭

Excel VBA常见问题:查询了一些自定义函数的例子都是单变量的。自定义函数能否建立“(As Range) As Interger”的函数,应该可以的,请各位大师赐教!请以“∑x2”为例,万分感谢!(该用"For Each ...Next",就是还不知道如何引用Range中的每个值,请高手指点。)

解答:参数使用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 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
还望您的帮助。

解答: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

结果:调试成功!,非常感谢!

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:Excel VBA常见问题:自定义函数如何使用? | 猎微网

评论已关闭!