excel的vba编程时,如何让输入的参数是好几个连续的单元格?
我想用excel编程,可是需要的参数真的是太多了,我想使用自己一选就可以选中一片单元格的方式,把连续的单元格当成一个参数.比如我想编写一个求平方和的vba函数,假设函数名...
我想用excel编程,可是需要的参数真的是太多了,我想使用
自己一选就可以选中一片单元格的方式,把连续的单元格当成一个参数.
比如我想编写一个求平方和的vba函数,假设函数名是pfh,
参数分别是A1,B1,C1,D1,如果我要求平方和的话,我只需要在E1中输入
=pfh(A1,B1,C1,D1)
但是,如果参数很多的话,这样输入是很累的,
我想要的效果是
=pfh(A1:D1)然后就得到结果,请问这样的函数如何写呢? 展开
自己一选就可以选中一片单元格的方式,把连续的单元格当成一个参数.
比如我想编写一个求平方和的vba函数,假设函数名是pfh,
参数分别是A1,B1,C1,D1,如果我要求平方和的话,我只需要在E1中输入
=pfh(A1,B1,C1,D1)
但是,如果参数很多的话,这样输入是很累的,
我想要的效果是
=pfh(A1:D1)然后就得到结果,请问这样的函数如何写呢? 展开
推荐于2016-06-04 · 知道合伙人软件行家
关注
展开全部
Function Pfh(Rng As Range)
Dim Rng1 As Range
Dim k
For Each Rng1 In Rng
k = k + Rng1 ^ 2
Next
Pfh = k
End Function
把代码写到模块中
以下代码还可以忽略非数字
Function Pfh(Rng As Range)
Dim Rng1 As Range
Dim k
For Each Rng1 In Rng
If IsNumeric(Rng1) Then k = k + Rng1 ^ 2
Next
Pfh = k
End Function
Dim Rng1 As Range
Dim k
For Each Rng1 In Rng
k = k + Rng1 ^ 2
Next
Pfh = k
End Function
把代码写到模块中
以下代码还可以忽略非数字
Function Pfh(Rng As Range)
Dim Rng1 As Range
Dim k
For Each Rng1 In Rng
If IsNumeric(Rng1) Then k = k + Rng1 ^ 2
Next
Pfh = k
End Function
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public function 平方和(rng as range)
for each rng in selection
s=s+rng*rng
next
平方和=s
end function
for each rng in selection
s=s+rng*rng
next
平方和=s
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之后,下面的语句是对这个变量做一个循环,循环的区域就是你选择的区域,所以不用再一个一个给他赋值了!
循环以后就会自动的把每个值运算一遍。懂么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
=pfh(A1,i), i代表单元格个数
追问
那如果是求A1,B1,C1的平方和,也能这么做吗?
追答
楼上的Range更好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询