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

上传人:自*** 文档编号:126211981 上传时间:2020-03-23 格式:DOC 页数:3 大小:41.45KB
返回 下载 相关 举报
VBA之自定义函数及加载.doc_第1页
第1页 / 共3页
VBA之自定义函数及加载.doc_第2页
第2页 / 共3页
VBA之自定义函数及加载.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《VBA之自定义函数及加载.doc》由会员分享,可在线阅读,更多相关《VBA之自定义函数及加载.doc(3页珍藏版)》请在金锄头文库上搜索。

1、VBA之自定义函数 这一贴说的是自定义函数。Excel本身已自带了很多函数,供我们使用,但有些问题用原有的函数解决起来很复杂,甚至是无能为力,但有了VBA,可能就可以现实。 怎样自定义一个函数?下面我们建一个名为RangeCount和函数,用来统计给定单元格数量。上贴说过怎么插入一个宏(子程序),其实细心的朋友就会发现,里面有一项函数的选项,就是用这个添加了!键入你需要的名称RangeCount,即会自动生成一个函数的头Public Function RangeCount()和尾End Function!这时大家可以知道,子程序都是以Sub关键字开头,而函数是以Function关键字开头。 怎

2、样给自定义函数传递参数?用过Sum函数的朋友都知道Sum的用法,在单元格中键入=Sum(A1:A10)就能对A1:A10进行求和,那么怎么让我们的自定义函数也有此功能呢,其实很简单,只要在Function RangeCount()中的(与)之间加入即可,象现在我们要给这个自定义函数传递一个单元格的参数,即在()间加入XRan As Range即可。其中XRan就是我们给这个参数设定的名称,As 是关键字,而Range就是给定参当数的类型(单元格类型),更详细的说明可以参见VBA的帮助(上贴有说明怎么用帮助了吧:)。 怎么样自定义函数加入功能?其实也和子程序一样,在函数的头Public Func

3、tion RangeCount()和尾End Function之间就可以加入代码,我们这个函数的代码只有一句:RangeCount = XRan.Count 怎么样让自定义函数返回值?从上面的例子看出,只要将函数的名称设定为需要返回的值即可。 怎么当前工作表中使用自定久函数?使用自定义函数的方法其实和一般函数的方法是一样的,在单元格中键入=RangeCount(A1:A10),即可以得到值(10)!当然,也可以通过菜单插入/函数,在类别中选择用户自定义里找到你自定义的函数。 怎么在工作表里使用别的工作表里的自定义函数?从菜单插入/函数,类别中的用户自定义里,可以看到,如果这个自定义函数不是在当

4、前的工作表里的,函数会变成文件名.xls!函数名了,这样我们使用上面的自定义函数就变成=Book1.xls!RangeCount(A1:A10)(设我们刚才保存文件为Book1)。 怎么样在任何工作表中使用自定义函数?自定义了函数后,每一次使用都要打开这个工作簿,不方便,那么怎么样让任何工作簿都能使用这个自定义函数呢?有两个方法,第一个就是把代码写在上面说到的个人宏工作簿中,因为个人宏工作簿都是随Excel自动打开的,那么我们就可以通过PERSONAL.XLS!函数名来使用这个自定义函数。第二个方法就是加载宏(关于加载宏的其它用法和具体说明以后还会有专门的一贴),将包含这个自定义函数的工作簿,

5、去掉无关的内容(不去当然也行啦!)后另存为加载宏(不会不知道怎么另存吧,汗!后注!),这样在菜单工具/加载宏里,将相关项前打勾,即可使用该自定义函数,这时使用函数的方法只要直接用函数名即可,如=RangeCount(A1:A10)。 最后再说一点大家少遇到的现象:用过VBA后,大家知道在同一模块中是不能有相同名称的子程序与函数的,如果有,运行时会提示存在二义性!但在不同模块中,却能有相同甸称的函数存在,那么怎么使用这样的函数呢?从菜单插入/函数,类别中的用户自定义里,我们可以看出这样的函数变成模块名.函数名了,这样我们的使用方法就是=模块1.RangeCount(A1:A10)或=模块2.Ra

6、ngeCount(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

7、 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 = WorksheetFunction.Sum(rCell) + vResult End If Next rCell SumColor = vResult End Function Function CountColor(rColor As Range

8、, 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 = vResult + 1 End If Next rCell CountColor = vResult End Function 转载请注明:本文来自:Excel吧 () 详细出处参考:h

9、ttp:/ 什么是加载宏?加载宏程序是一类程序,它们为 Microsoft Excel 添加可选的命令和功能。 加载宏的分类!Excel 有三种类型的加载宏程序:Excel 加载宏、自定义的组件对象模型 (COM) 加载宏和自动化加载宏。而我们这里说的和以后讲的加载宏都是第一类加载宏。 如何安装加载宏?在使用某个加载宏前,必须先将其安装在计算机上,再将其加载到 Excel 中。默认情况下,加载宏(*.xla 文件)将安装在以下某个位置上: Microsoft Office/Office 文件夹的 Library 文件夹或其中的某个子文件夹。 Documents and Settings/App

10、lication Data/Microsoft/AddIns 文件夹。你也可以将XLS文件,通过文件/另存为,将其另存为Xla加载宏文件。 如何将加载宏装入 Excel?安装完加载宏之后,还必须将加载宏装入 Excel。在工具/加载宏中,里面就列出你电脑中的所有安装的加载宏项,将对应项的勾勾选上即可加载加载宏。 如何卸载 Excel中的加载宏?相对应,在工具/加载宏中,里面就列出你电脑中的所有安装的加载宏项,将对应项的勾勾去除即可。将加载宏卸载只是从 Excel 中删除加载宏的功能和命令,但计算机上依然保留着加载宏程序,因此您还可以轻松地重新装载该加载宏。 如何在加载宏加载和关闭时运行特定的代

11、码?在AddinInstall 事件和AddinUnInstall 事件中加入相应的代码即可,当然,这是加载宏加载和关闭时特有的事件,你可以选择在Workbook_open(打开)和Workbook_BeforeClose(关闭)中加入相应的加代。 如何在自定义的加载宏中加入说明?细心的朋友会发现,当我们选择每个Excel自带的加载宏时,在其下方会有一段文字说明这个加载宏,其实我们自定义的加载宏里也可以自已加入一段说明的,只要在其文件/属性的备注中写入这段说明即可,这样看起来是不是专业一点*_*,也方便让其它使用加载宏的朋友在加载前多一点了解它。 加载宏就说到这里了,再加上前面的说明,你是不是可以将以前的自定义函数啦,宏啦用加载宏分发别其他朋友了:),再下面的几项自定义项,能让你的一些不懂VBA的朋友更能易用你编好的加载宏,敬请关注哦! 转载请注明:本文来自:Excel吧 () 详细出处参考:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号