第五课 代码的录入方式和保存方式整理版.docx

上传人:b****5 文档编号:5801119 上传时间:2023-01-01 格式:DOCX 页数:10 大小:617.93KB
下载 相关 举报
第五课 代码的录入方式和保存方式整理版.docx_第1页
第1页 / 共10页
第五课 代码的录入方式和保存方式整理版.docx_第2页
第2页 / 共10页
第五课 代码的录入方式和保存方式整理版.docx_第3页
第3页 / 共10页
第五课 代码的录入方式和保存方式整理版.docx_第4页
第4页 / 共10页
第五课 代码的录入方式和保存方式整理版.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

第五课 代码的录入方式和保存方式整理版.docx

《第五课 代码的录入方式和保存方式整理版.docx》由会员分享,可在线阅读,更多相关《第五课 代码的录入方式和保存方式整理版.docx(10页珍藏版)》请在冰豆网上搜索。

第五课 代码的录入方式和保存方式整理版.docx

第五课代码的录入方式和保存方式整理版

第五讲代码的录入方式和保存方式

本节课程重点:

●了解代码应该放在哪里,如何输入,如何保存

●学习代码如何编写,以及它的语法

第一点讲过程的分类

上一课已讲到,一段VBA程序就是一个过程,所以以后要注意,说过程就是程序,而不是我们生活中所讲的“过程”,例如录一个宏,它产生的代码就是一个子过程,也称Sub过程,也可以称之为宏过程。

当然最书面化的称谓是子过程。

VBA的过程包括三类:

子过程是最常用的占所有过程的80%以上,子过程以Sub开头,EndSub结尾。

我们天天见到宏都是子过程,Sub和endSub是它的外壳,可以理解为包装袋,有价值的东西都在袋内。

为什么称之为子过程呢?

因为Sub过程常作为其它过程的子过程调用

例如

suba()

msgbox"ILoveVBA"

endsub

subb()

calla

endsub

大家可以使用Alt+F11打开VBE,然后插入一个模块,粘贴以下代码然后单击激活过程b,然后按F5键,此时看到的是过程a的执行结果,也就是说过程a是过程b的子过程。

过程b调用过程a来实现某些功能,当然函数过程也可以作为子过程调用,更是Sub过程使用更频繁,所以将子定程绑定到了Sub过程身上,所有录制宏产生的过程全是子过程。

不可能录制其它过程,子过程以外用得多的是函数过程。

函数过程以Function开头,以endfunction结尾。

也就是我们常说的自定义函数。

自定义函数属于VBA的综合应用,所以等到近30课后才能讲。

没有一定的基本功是无法做好自定义函数的

第三类是属性过程,以Property开头,这类过程基本不用。

我们的课程主要针对前两类过程。

在子过程中其实还有一类分枝----事件过程。

事件过程是很特别的一类过程。

初学者很难懂,帮助中对于事件二字的解释也是相当不通俗化。

所以要从概念上明白事件过程是怎么回事对新手而言并不简单,所以,我们可以从另一个方向下手。

根据事件的功能和存放地址来理解,等一下在后面后讲到现在先说说过程代码的三种录入方式

其一是“插入”-“过程”。

请大家先在VBE中插入一个模块:

你只要指定一个过程名称就行了,然后要下面选择子程序

然后单击“确定”,一个子过程就产生了。

PublicSub我的宏()

EndSub

这是程序的外壳,你可以随心所欲地在其中添加操作命令,这种方法对于新手而言很方便、快捷。

第二种方法就是手工录入,其实只要输入sub加过程名称就行了,其余的VBA自动完成,输入subABC,然后回车就行了,括号加endSub都全自动完成,所以手工录入过程的外壳也一样的简单

第三种方法是借助录制宏实现,因为平常编程其实多数时候需要录制宏,然后改代码,所以索兴就直接通过录制产生代码了。

以上三种没有高下之分,大家自行选择。

最麻烦的是事件过程,现在回到事件上来。

VBA有很多事件,控件、窗体、图表、工作表、工作簿、Excel应用程序等都支持事件,而对于初学者而言,主要涉及事件的对象就两个,其它的以后再谈,先谈这两个对名胜的事件----工作表对象和工作簿对象。

我们常接触的事件就是工作表事件和工作簿事件,其它事件要么不常用,要么是等你到了高级用户后才用,所以初学者可以通过工作表事件和工作簿事件来了解事件。

通常,事件一定涉及一个对象和一个对象的动作,对象和动作加起来形成一个事件,而其中的对象和动作是由微软预先定义的

例如工作表的激活事件:

PrivateSubWorksheet_Activate()

EndSub

对象是工作表Worksheet,动作是Activate。

所以指定对象的某些指定动作被微软定义为事件,而其它的一些动作没有赋予事件。

所以在这种前提下不能简单的定义事件是什么,或者有什么规律,最简单的办法是将帮助中的查看帮助获知Excel的某个对象支持哪些事件。

请大家按F1键打开帮助,搜索关键字“Worksheet对象事件”。

单击第一项即可

这里是工作表对象所支持的所有事件列表,单击其中一项就看到微软对该事件的详细描述。

工作表事件并不多,但是加上工作簿事件就多了,上面的这个帮助界面其实不太利于观察。

大家可以换一个关键字,“Worksheet对象成员”,然后单击第一项,请拉到最下面。

这里是所有事件的名称和解释,能同时看到,对于理解有帮助,当然也利于打印,大家可以打印出来。

由于工作表有很多动作,例如复制、插入、激活之类动作,但是只有部分动作可以形成事件,这些动作由微软定义的,也没有规律,记忆不容易,所以打印出来,要用时核对一下就行了。

例如我是一个新手,我想知道工作表没有有重命名事件,看一下这张表就明白了。

虽然是新手,其实就10多秒钟就明白了,既不用记什么,也不要学习多高深的技术才能解决这个问题。

简单地说,工作表的事件就是在工作表的某个预先定义的操作时,可以自动执行用户指定的命令,对象和动作由微软定义的,但是事件发生时要调用的命令却是我们自己指定的。

例如我想实现切换到工作表sheet3时弹出一个问候的窗口,由于是自动的(切换工作表时自动弹出信息)所以需要使用事件,所以有一种简单的理解事件的方法。

也就是事件总是自动执行的,而我们平常编的程序需要手工执行。

所以要判断某项工作是用事件还是不用事件,我们先想想要不要自动执行就行了,先试一下上面的事件。

PrivateSubWorksheet_Activate()

MsgBox"你好"

EndSub

工作表激活事件代码如上。

现在的问题是如何输入?

首先由于要求是“切换到工作表sheet3时弹出一个问候的窗口”,所以是代码要写到Sheet3工作表,在工程资源管理器中双击sheet3,请先进入这个界面:

左上方有一个对象窗口

单击列表,选择worksheet

然后再单击右边的过程列表框

右边的这个列表就是事件过程的过挰名称。

右边的这个列表就是事件过程的过挰名称,刚才讲了事件过程由对象和动作组成。

刚才的两个步骤刚好对应

先选择对象worksheet,表示工作表,然后选择动作。

第一项:

Activate()

最后产生的代码如下:

PrivateSubWorksheet_Activate()

EndSub

这就是工作事的事件过程。

也就是说事件过程偏于复杂,不要手工输入,而是通过下拉列表选择对象名称和动作,它会自动产生过程的外壳,最后再自己补充代码,MsgBox"你好" 写在中间,录入过程后,可以测试代码了,请按Alt+F11返回工作表界面。

先单击Sheet1,然后单击Sheet3。

当你单击sheet3工作表时程序就自动执行了,所以印证了刚才所讲的事件过程总是自动执行的。

当关联的事件条符合时,全自动执行过程,而不需要手工单击菜单或者按F5执行。

与事件相关的过程就叫事件过程。

事件过程必须放在该对象的代码窗口才生效,在其它地方无效。

上述过程是Sheet3对象的事件过程。

如果将代码放在模块中,过程就没用了,不再有事件的特性。

简单而言,你想要代码自动执行,就用事件过程。

写事件过程之前先想好对象是什么?

动作是什么?

如果想要手工执行代码,那么就用普通过程。

事件过程必须放在它所属性的对象中例如Sheet1的事件过程放在Sheet1的代码窗口。

Shee3的事件过程放在Sheet3的代码窗口。

工作簿事件过程必须放在ThisWorkbook窗口。

剩下的自定义函数和子过程放在模块中就行了。

再说说代码的保存方式,保存方式总和文件格式相关联的。

所以先了解文件格式,Excel通用的格式是xls,此格式有Excel97到2013都通用,所以如果你很在乎文件通用,人人都可以打开,就将文件保存为xls格式。

其次是xlsx格式,这是一种2007开始推行的压缩格式,支持更多的行与列,xlsx文件支持1048576行16384列,而xls格式只支持65536行256列。

xlsx文件另一优点是与xls文件同样的内容时将拥有更小和体积,因为它是压缩格式。

另外,xlsx文件不能保存宏代码。

当你保存文件时,如果工作簿中有宏代码,那么宏代码自动消失。

相信大家都看过这个提示,看到这个提示就应该明白两件事:

1.你的工作簿中有宏代码,或者有宏表函数;

2.你选择的文件格式错了。

如果你想要保存你的代码,请重新选择xlsm格式。

那么xlsx不能保存代码,还有优点吗?

其实有一个大大的优点:

假设你不喜欢VBA,那么请永远使用xlsx格式的文件,因为它自动丢失代码,所以你的电脑永远不会中宏病毒,一切宏病毒都自动消失。

当然,进本群者都需要保存代码,所以请用xlsm格式。

xlsm格式同样是2007增的格式,拥有更多的行与列,能保存代码。

接上面的话题,假设每个文件都保存时都要重新选择一下格式,岂非麻烦?

微软已经预先解决了这个问题,请看下图

使用Alt+T+O组合键打开选项对话框,然后调一下格式,以后所有文件自动保存为xlsm格式,一劳永逸。

最后一点,讲解如何保存代码

代码有两种存方式:

一是保存在工作簿中,那么在VBE界面按下Ctrl+S就行了,在保存工作簿的同时,也保存了代码。

二是将代码/模块单独保存。

如下图:

对有代码的模块单击右键,选择导出文件就行了,生成一个模块文件,假设模块中的代码很有价值,以后可以导入模块,直接复制里面的代码应用。

不过,我的建议是,大家平常要注意收集好的代码,放在Word里,而不是模块中。

Word里可以加更多的注释,而且方便查找。

当然和工作簿放在一起也可以,好处是保存代码的同时也保存的对应的数据,以后调用代码时可以预先验证一下代码。

而有些通用的代码是不需要与数据直接关联的,所以没有数据也不会有影响。

总之一句话,平时遇到好的代码要收意收集、分类。

分类是最重要的,而且更重要的是在后面加注释。

否则可能一个月后再遇到这段代码都不知道它的思路或者功能。

好,今天的内容到时结束

主要包括代码放在何处,过程的分类、不同过程的代码的录入方式。

下周三的内容是“认识过程”,开始真正地编程,前5课都是一些边缘化的知识。

当大家具备这些常识后,再开始接触代码会更得心应手。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1