我想用excel编程,可是需要的参数真的是太多了,我想使用
自己一选就可以选中一片单元格的方式,把连续的单元格当成一个参数.
比如我想编写一个求平方和的vba函数,假设函数名是pfh,
参数分别是A1,B1,C1,D1,如果我要求平方和的话,我只需要在E1中输入
=pfh(A1,B1,C1,D1)
但是,如果参数很多的话,这样输入是很累的,
我想要的效果是
=pfh(A1:D1)然后就得到结果,请问这样的函数如何写呢?
设置åæ°ä¸ºrangeç±»åï¼å³å¯ä»¥è¡¨ç¤ºè¿ç»çåºåã举ä¾è¯´æï¼
åä¸ä¸ªèªå®ä¹å½æ°ï¼è¯¥å½æ°çåæ°ä¸ºä¸ä¸ªåºåï¼ç»æè¾åºä¸ºåºåä¸çæ°å¼ä¹åã
èªå®ä¹å½æ°ç代ç å¦ä¸ï¼
Function myf(a As Range)
Dim b As Variant
myf = 0
For Each b In a
myf = myf + b.Value
Next
End Function
使ç¨è¯¥èªå®ä¹å½æ°ç»æå¦å¾ï¼
是不是只要定义变量是range就可以了?如果rng是四个连续的单元格,那么如何把单元格第一个内容赋值给变量a,第二个赋值给b,第三个赋值给c,第四个赋值给d呢?在自定义函数中应该如何写呢?谢谢
追答Public Function pfh(rng As Range)
Dim c
For Each c In rng
s = s + c * c
Next
pfh = s
End Function
你用这个,之前那个写错了!!
还有我解释一下,你定义变量range之后,下面的语句是对这个变量做一个循环,循环的区域就是你选择的区域,所以不用再一个一个给他赋值了!
循环以后就会自动的把每个值运算一遍。懂么?
我就是想学会如何一个一个赋值的,所以才问你的.能用a=rng[1],b=rng[2],c=rng[3],d=rng[4]吗?
追答一个一个赋值???神马意思??
你那样一个一个是不行的!!
哎。。。
为什么死脑筋呢??不明白。
要是想一个一个赋值,干嘛还要写函数呢??直接算出来就得了,绕一大圈子。
我写的那个其实就是一个一个赋值,只不过是自动判断的!循环了几次而已!
我要写一个子函数, 其中变量a是一个变量,变量b是好几个连续的单元格,
如果不一个一个赋值,我就不能够见到变量名知道变量名的意思了,不能望变量名而生义,那么很容易犯错误的
那如果是求A1,B1,C1的平方和,也能这么做吗?
追答楼上的Range更好