Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2241|回复: 3

[已解决]求教关于自定义函数

[复制链接]
发表于 2015-1-29 13:22 | 显示全部楼层 |阅读模式
本帖最后由 sunshinegg 于 2015-1-29 13:24 编辑

我想自定义一个函数,这个函数取名叫f.
比如f=STDEV(A1:B2)/AVERAGE(A1:B2),"A1:B2"是选区

我先尝试着用 宏 试了一下。脚本如下
Sub test()
Dim arr
arr = Selection
Range("f1") = WorksheetFunction.StDev(arr) / WorksheetFunction.Average(arr)
End Sub
可以成功,如下图

然后我想,用自定义函数来实现这个功能
Function f(ParamArray a())
f = WorksheetFunction.StDev(a) / WorksheetFunction.Average(a)
End Function

但是不行,请问我错在哪里? paramarry不也是一个数组吗? 为什么同样是数组这样却不行?


最佳答案
2015-1-29 13:45
  1. Function f(a As Range)
  2. f = WorksheetFunction.StDev(a) / WorksheetFunction.Average(a)
  3. End Function
复制代码
ddd.png
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-1-29 13:44 | 显示全部楼层
那是因为arr赋值后已经转换成数组类型了,直接声明成range类型吧。
回复

使用道具 举报

发表于 2015-1-29 13:45 | 显示全部楼层    本楼为最佳答案   
  1. Function f(a As Range)
  2. f = WorksheetFunction.StDev(a) / WorksheetFunction.Average(a)
  3. End Function
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-1-29 14:24 | 显示全部楼层
hwc2ycy 发表于 2015-1-29 13:45

太感谢了

不过我还有个疑问能帮我再看一下吗?
http://www.excelpx.com/forum.php ... p;extra=#pid3830574
拜托啦 看一下 谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-25 08:44 , Processed in 0.485766 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表