Excel精英培训网

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

excel自定义函数是否可以选取多个不连续的区域

[复制链接]
发表于 2015-1-29 14:23 | 显示全部楼层 |阅读模式
比如说自定义一个函数
Function f(a As Range)
f = WorksheetFunction.StDev(a) / WorksheetFunction.Average(a)
End Function

如果选取是 A1:B2这个函数能正常工作,
但如果想让选区是A1:B2和A4:B5,则函数无法正常工作。请问有办法实现多个不同区域的选择吗?

ddd.png
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-1-29 16:00 | 显示全部楼层
有些属性,自定义函数不支持,用子程序试试
  1. Sub f()
  2. Set a = Application.InputBox("请用鼠标选取单元格", Type:=8)
  3. n = Application.Count(a)
  4. x = Application.Sum(a) / n
  5. For Each rg In a.Areas
  6.     For Each c In rg
  7.         s = s + (c - x) ^ 2
  8.     Next
  9. Next
  10. MsgBox Sqr(s / (n - 1)) / x
  11. End Sub
复制代码
回复

使用道具 举报

发表于 2015-1-29 16:01 | 显示全部楼层
建议一开始就确定好参数的个数,不确定的用Optional 声明
回复

使用道具 举报

发表于 2015-1-31 00:40 | 显示全部楼层
Just add 1 more set of () as follows:

=f((A1:B2, A4:B5))
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 18:30 , Processed in 0.242636 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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