Excel精英培训网

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

[已解决]关于如何更改自定义函数类别的求助

[复制链接]
发表于 2012-1-16 19:30 | 显示全部楼层 |阅读模式
  1. Sub AUTO_OPEN()
  2.     Application.MacroOptions MACRO:="MYSUN", Category:=1
  3. End Sub
复制代码
自定义的函数总是被放置在“自定义”的门类下,根据 书上的介绍,可以用上面的代码实现把自定义函数放在财务类别下面,我要问的是:
   1.【 这个AUTO_OPEN () 是个什么事件,在工作表事件及工作簿事件中为何找不到它?
   2.【能不能不用VBA代码就实现随意把自定义函数放在自己想放的位置?
最佳答案
2012-1-16 19:55
本帖最后由 cbg2008 于 2012-1-16 20:06 编辑

1. 在Excel的“标准模块”中可以创建4种自动运行的宏,它们分别是Auto_Open(打开工作簿时自动运行), Auto_Close, Auto_Activate,  Auto_Deactivate。这些自动运行的宏是为了与Excel 5 和 95兼容而保留下来的。现在可以使用工作簿的 Open, Close, Activate , Deactivate 事件来代替它们。
当一个工作簿中分别有Workbook_Open事件和Auto_Open子过程时,当打开工作簿时,Workbook_Open事件先运行,然后再运行Auto_Open子过程。但是并不是所有情况都会运行Auto_Open子过程,如果在其它工作簿中用代码打开该工作簿的话(比如用Workbooks.Open方法打开该工作簿),则只会运行Workbook_Open事件,而不会运行Auto_Open子过程。为了加深理解,可以参考如下代码:
新建一个工作簿:
在“Thisworkbook”模块中粘帖如下代码

  1. Private Sub Workbook_Open()
  2. MsgBox 1
  3. End Sub
复制代码

插入一个模块
在“模块1”中粘帖如下代码

  1. Sub auto_open()
  2. MsgBox 2
  3. End Sub
复制代码



保存关闭该工作簿,然后再打开该工作簿。
查看运行的结果,可以发现先弹出1,再弹出2。

2.   在 VBA 里添加了自定义函数,会自动出现在插入函数列表中。(在工作表按 Shift+F3 可快速叫出“插入函数”对话框)


一般自定义函数会被自动分类成“用户定义”,并显示没有帮助信息(图中红色圈出部分)。

要提供帮助信息,或者改变分类,可以参考下面提供的方法。


为自定义函数提供帮助信息

有几种方法都可以让自定义函数在“插入函数”对话框中提供帮助信息。

最简单的方法,是在编写函数之前,录制一个宏。在宏名填写自定义函数的名称,在说明填写函数的帮助信息。

然后按 Alt+F11 打开 VB 编辑器,把代码中的 Sub 改成 Function,然后按照你希望的改变参数和内容,也可以把原本 Sub 程序的注释删掉。

这样,添加的自定义函数就会出现帮助信息了。


除了这个方法之外,另外两个方法都是在增加自定义函数之后操作。

增加自定义函数之后,在 VB 编辑器按 F2,出现“对象浏览器”。


在最上方第一个下拉列表(“工程/库”列表)选 VBAProject,“类”下面选你放函数的模块,然后右击自定义的函数,选择“属性”。

在弹出的“成员选项”对话框中“描述”里输入想添加的帮助信息。


我们还可以通过代码添加或修改帮助信息:


Application.MacroOptions Macro:="自定义函数名称", Description:="帮助信息"

把这个代码放在一个临时的 Sub 程序中,只有运行一次就可以修改帮助信息了。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2012-1-16 19:34 | 显示全部楼层
自己顶一下.....................................
回复

使用道具 举报

发表于 2012-1-16 19:51 | 显示全部楼层
老5这个我不懂,我帮你喊一嗓子。
回复

使用道具 举报

发表于 2012-1-16 19:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 cbg2008 于 2012-1-16 20:06 编辑

1. 在Excel的“标准模块”中可以创建4种自动运行的宏,它们分别是Auto_Open(打开工作簿时自动运行), Auto_Close, Auto_Activate,  Auto_Deactivate。这些自动运行的宏是为了与Excel 5 和 95兼容而保留下来的。现在可以使用工作簿的 Open, Close, Activate , Deactivate 事件来代替它们。
当一个工作簿中分别有Workbook_Open事件和Auto_Open子过程时,当打开工作簿时,Workbook_Open事件先运行,然后再运行Auto_Open子过程。但是并不是所有情况都会运行Auto_Open子过程,如果在其它工作簿中用代码打开该工作簿的话(比如用Workbooks.Open方法打开该工作簿),则只会运行Workbook_Open事件,而不会运行Auto_Open子过程。为了加深理解,可以参考如下代码:
新建一个工作簿:
在“Thisworkbook”模块中粘帖如下代码

  1. Private Sub Workbook_Open()
  2. MsgBox 1
  3. End Sub
复制代码

插入一个模块
在“模块1”中粘帖如下代码

  1. Sub auto_open()
  2. MsgBox 2
  3. End Sub
复制代码



保存关闭该工作簿,然后再打开该工作簿。
查看运行的结果,可以发现先弹出1,再弹出2。

2.   在 VBA 里添加了自定义函数,会自动出现在插入函数列表中。(在工作表按 Shift+F3 可快速叫出“插入函数”对话框)


一般自定义函数会被自动分类成“用户定义”,并显示没有帮助信息(图中红色圈出部分)。

要提供帮助信息,或者改变分类,可以参考下面提供的方法。


为自定义函数提供帮助信息

有几种方法都可以让自定义函数在“插入函数”对话框中提供帮助信息。

最简单的方法,是在编写函数之前,录制一个宏。在宏名填写自定义函数的名称,在说明填写函数的帮助信息。

然后按 Alt+F11 打开 VB 编辑器,把代码中的 Sub 改成 Function,然后按照你希望的改变参数和内容,也可以把原本 Sub 程序的注释删掉。

这样,添加的自定义函数就会出现帮助信息了。


除了这个方法之外,另外两个方法都是在增加自定义函数之后操作。

增加自定义函数之后,在 VB 编辑器按 F2,出现“对象浏览器”。


在最上方第一个下拉列表(“工程/库”列表)选 VBAProject,“类”下面选你放函数的模块,然后右击自定义的函数,选择“属性”。

在弹出的“成员选项”对话框中“描述”里输入想添加的帮助信息。


我们还可以通过代码添加或修改帮助信息:


Application.MacroOptions Macro:="自定义函数名称", Description:="帮助信息"

把这个代码放在一个临时的 Sub 程序中,只有运行一次就可以修改帮助信息了。
回复

使用道具 举报

发表于 2012-1-16 20:07 | 显示全部楼层
本帖最后由 cbg2008 于 2012-1-16 20:08 编辑

改变自定义函数的分类
用下面一个代码,就可以改变自定义函数的分类了:

  1. Application.MacroOptions Macro:="自定义函数名称", Category:="类别"
复制代码

类别可以输入 Excel 本身已经有的类别,或者自己新建立一个也行。如果代码中的“类别”不是现有的类别,Excel 会自动建立一个新类别。
除了用类别名称,也可以用类别代码:
0 All / 全部:不分类别,只出现在“全部”中
1 Financial / 财务
2 Date & Time / 日期与时间
3 Math & Trig / 数学与三角函数
4 Statistical / 统计
5 Lookup & Reference / 查找与引用
6 Database / 数据库
7 Text / 文本
8 Logical / 逻辑
9 Information / 信息
10 Commands / 命令:一般不显示
11 Customizing / 自定义:一般不显示
12 Macro Control / 宏控件:一般不显示
13 DDE/External / DDE/外部:一般不显示
14 User Defined / 用户定义
15 Engineering / 工程
16 OLAP / 多维数据集:Excel 2007 版本适用
当然,你也可以把上面添加帮助信息的代码放在一起:
  1. Application.MacroOptions Macro:="自定义函数名称", Description:="帮助信息", Category:="类别"
复制代码
回复

使用道具 举报

 楼主| 发表于 2012-1-16 20:02 | 显示全部楼层
cbg2008 发表于 2012-1-16 19:55
1. 在Excel的“标准模块”中可以创建4种自动运行的宏,它们分别是Auto_Open(打开工作簿时自动运行), Auto_ ...

老六高啊,我佩服之极
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 23:01 , Processed in 0.252147 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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