VBA之自定义函数及加载.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VBA之自定义函数及加载.doc

VBA之自定义函数 这一贴说的是自定义函数。Excel本身已自带了很多函数,供我们使用,但有些问题用原有的函数解决起来很复杂,甚至是无能为力,但有了VBA,可能就可以现实。 怎样自定义一个函数?下面我们建一个名为RangeCount和函数,用来统计给定单元格数量。上贴说过怎么插入一个宏(子程序),其实细心的朋友就会发现,里面有一项函数的选项,就是用这个添加了!键入你需要的名称RangeCount,即会自动生成一个函数的头Public Function RangeCount()和尾End Function!这时大家可以知道,子程序都是以Sub关键字开头,而函数是以Function关键字开头。 怎样给自定义函数传递参数?用过Sum函数的朋友都知道Sum的用法,在单元格中键入=Sum(A1:A10)就能对A1:A10进行求和,那么怎么让我们的自定义函数也有此功能呢,其实很简单,只要在Function RangeCount()中的(与)之间加入即可,象现在我们要给这个自定义函数传递一个单元格的参数,即在()间加入XRan As Range即可。其中XRan就是我们给这个参数设定的名称,As 是关键字,而Range就是给定参当数的类型(单元格类型),更详细的说明可以参见VBA的帮助(上贴有说明怎么用帮助了吧:))。 怎么样自定义函数加入功能?其实也和子程序一样,在函数的头Public Function RangeCount()和尾End Function之间就可以加入代码,我们这个函数的代码只有一句:RangeCount = XRan.Count 怎么样让自定义函数返回值?从上面的例子看出,只要将函数的名称设定为需要返回的值即可。 怎么当前工作表中使用自定久函数?使用自定义函数的方法其实和一般函数的方法是一样的,在单元格中键入=RangeCount(A1:A10),即可以得到值(10)!当然,也可以通过菜单插入/函数,在类别中选择用户自定义里找到你自定义的函数。 怎么在工作表里使用别的工作表里的自定义函数?从菜单插入/函数,类别中的用户自定义里,可以看到,如果这个自定义函数不是在当前的工作表里的,函数会变成——文件名.xls!函数名了,这样我们使用上面的自定义函数就变成=Book1.xls!RangeCount(A1:A10)(设我们刚才保存文件为Book1)。 怎么样在任何工作表中使用自定义函数?自定义了函数后,每一次使用都要打开这个工作簿,不方便,那么怎么样让任何工作簿都能使用这个自定义函数呢?有两个方法,第一个就是把代码写在上面说到的个人宏工作簿中,因为个人宏工作簿都是随Excel自动打开的,那么我们就可以通过PERSONAL.XLS!函数名来使用这个自定义函数。第二个方法就是加载宏(关于加载宏的其它用法和具体说明以后还会有专门的一贴),将包含这个自定义函数的工作簿,去掉无关的内容(不去当然也行啦!)后另存为加载宏(不会不知道怎么另存吧,汗!后注!),这样在菜单工具/加载宏里,将相关项前打勾,即可使用该自定义函数,这时使用函数的方法只要直接用函数名即可,如=RangeCount(A1:A10)。 最后再说一点大家少遇到的现象:用过VBA后,大家知道在同一模块中是不能有相同名称的子程序与函数的,如果有,运行时会提示存在二义性!但在不同模块中,却能有相同甸称的函数存在,那么怎么使用这样的函数呢?从菜单插入/函数,类别中的用户自定义里,我们可以看出这样的函数变成模块名.函数名了,这样我们的使用方法就是=模块1.RangeCount(A1:A10)或=模块2.RangeCount(A1:A10)。 后注:详细的另存为加载宏的过程,点击菜单/文件/另存为,在文件类型里选择Microsoft Excel加载宏项,这时文件夹自动转到保存加载宏的AddIns,再保存即可。 附:上面RangeCount的完整代码: Function RangeCount(XRan As Range) RangeCount = XRan.Count End Function 下面给出两个自定义函数,按给颜色求和SumColor与计数CountColor Function SumColor(rColor As Range, rSumRange As Range) Dim rCell As Range Dim iCol As Integer Dim vResult Application.Volatile iCol = rColor.Interior.ColorIndex For Each rCell In rSumRange If rCell.Interior.ColorIndex = iCol Then vResult

文档评论(0)

mwap + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档