版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五课 代码的录入方式和保存方式今天的课程是“代码的录入方式和保存方式”先了解代码应该放在哪里,如何输入,如何保存然后再学习如何编写,以及它的语法第一点讲过程的分类上一课已讲到,一段VBA程序就是一个过程所以以后要注意,说过程就是程序,而不是我们生活中所讲的“过程”例如录一个宏,它产生的代码就是一个子过程,也称Sub过程,也可以称之为宏过程当然最书面化的称谓是子过程VBA的过程包括三类子过程是最常用的 占所有过程的80%以上子过程以Sub开头,End Sub结尾我们天天见到宏都是子过程Sub 和end Sub是它的外壳可以理解为包装袋,有价值的东西都在袋
2、内为什么称之为子过程呢?因为Sub过程常作为其它过程的子过程调用例如sub a()msgbox "I Love VBA"end subsub b()call aend sub大家可以使用Alt+F11打开VBE然后插入一个模块粘贴以下代码然后单击激活过程b然后按F5键 此时看到的是过程a的执行结果也就是说过程a是过程b的子过程过程b调用过程a来实现某些功能 当然函数过程也可以作为子过程调用,更是Sub过程使用更频繁,所以将子定程绑定到了Sub过程身上所有录制宏产生的过程全是子过程不可能
3、录制其它过程子过程以外 用得多的是函数过程 函数过程以Function开头以end function结尾也就是我们常说的自定义函数自定义函数属于VBA的综合应用,所以等到近30课后才能讲没有一定的基本功是无法做好自定义函数的第三类是属性过程以Property开头这类过程基本不用我们的课程主要针对前两类过程在子过程中 其实还有一类分枝-事件过程事件过程是很特别的一类过程初学者很难懂帮助中对于事件二字的解释也是相当不通俗化所以要从概念上明白事件过程是怎么回事 对新手而言并不简单所以,我们可以从另一个方向下手根据事件的功能和存放地址来理解,等一下在后面后讲
4、到现在先说说过程代码的三种录入方式其一是“插入”-“过程”请大家先在VBE中插入一个模块请看上图,单击“插入”-“过程”你只要指定一个过程名称就行了,然后要下面选择子程序然后单击“确定”一个子过程就产生了Public Sub 我的宏()End Sub这是程序的外壳你可以随心所欲地在其中添加操作命令这种方法对于新手而言 很方便、快捷第二种方法就是手工录入其实只要输入sub加过程名称就行了其余的VBA自动完成输入 sub ABC然后回车就行了括号加 end Sub都全自动完成所以手工录入过程的外壳也一样的简单第三种方法是借助录制宏实现因为平常编程其
5、实多数时候需要录制宏,然后改代码,所以索兴就直接通过录制产生代码了以上三种没有高下之分,大家自行选择最麻烦的是事件过程现在回到事件上来VBA有很多事件,控件、窗体、图表、工作表、工作簿、Excel应用程序等都支持事件而对于初学者而言,主要涉及事件的对象就两个,其它的以后再谈,先谈这两个对名胜的事件-工作表对象和工作簿对象我们常接触的事件就是工作表事件和工作簿事件其它事件要么不常用,要么是等你到了高级用户后才用所以初学者可以通过工作表事件和工作簿事件来了解事件通常,事件一定涉及一个对象和一个对象的动作,对象和动作加起来形成一个事件,而其中的对象和动作是由微软预先定义的例如工作表的激活事件:Pri
6、vate Sub Worksheet_Activate()End Sub对象是工作表Worksheet,动作是Activate。所以指定对象的某些指定动作被微软定义为事件,而其它的一些动作没有赋予事件所以在这种前提下不能简单的定义事件是什么,或者有什么规律,最简单的办法是将帮助中的查看帮助获知Excel的某个对象支持哪些事件请大家按F1键打开帮助搜索关键字“Worksheet 对象事件”单击第一项即可 这里是工作表对象所支持的所有事件列表单击其中一项就看到微软对该事件的详细描述工作表事件并不多,但是加上工作簿事件就多了上面的这个帮助界面其实不太利于观察大家可以换一
7、个关键字“Worksheet 对象成员”然后单击第一项请拉到最下面这里是所有事件的名称和解释 能同时看到,对于理解有帮助,当然也利于打印 大家可以打印出来由于工作表有很多动作,例如复制、插入、激活之类动作但是只有部分动作可以形成事件这些动作由微软定义的,也没有规律,记忆不容易所以打印出来,要用时核对一下就行了例如我是一个新手,我想知道工作表没有有重命名事件看一下这张表就明白了 虽然是新手,其实就10多秒钟就明白了既不用记什么,也不要学习多高深的技术才能解决这个问题 简单地说,工作表的事件就是在工作表的某个预先定义的操作时,可以自动执行用户指定的命令对象和动作由微软
8、定义的,但是事件发生时要调用的命令却是我们自己指定的例如我想实现切换到工作表sheet3时弹出一个问候的窗口由于是自动的(切换工作表时自动弹出信息)所以需要使用事件所以有一种简单的理解事件的方法也就是 事件总是自动执行的而我们平常编的程序需要手工执行所以 要判断某项工作是用事件还是不用事件,我们先想想要不要自动执行就行了先试一下上面的事件Private Sub Worksheet_Activate()MsgBox "你好"End Sub工作表激活事件 代码如上现在的问题是如何输入 首先 由于要求是“切换到
9、工作表sheet3时弹出一个问候的窗口” 所以是代码要写到Sheet3工作表在工程资源管理器中双击sheet3请先进入这个界面左上方有一个对象窗口单击列表,选择worksheet 然后再单击右边的过程列表框右边的这个列表就是事件过程的过挰名称刚才讲了事件过程由对象和动作组成刚才的两个步骤刚好对应 先选择对象 worksheet,表示工作表然后选择动作 第一项:Activate()最后产生的代码如下:Private Sub Worksheet_Activate()End Sub 这就是工作事的事件过程 也就是说事件过程偏于复杂,不要手工输入而是通过下拉列表选择对象名
10、称和动作它会自动产生过程的外壳最后再自己补充代码MsgBox "你好"写在中间 录入过程后,可以测试代码了请按Alt+F11返回工作表界面先单击Sheet1然后单击Sheet3 当你单击sheet3工作表时 程序就自动执行了所以印证了刚才所讲的 事件过程总是自动执行的当关联的事件条符合时,全自动执行过程,而不需要手工单击菜单或者按F5执行与事件相关的过程就叫事件过程事件过程必须放在该对象的代码窗口才生效,在其它地方无效。上述过程是Sheet3对象的事件过程如果将代码放在模块中,过程就没用了,不再有事件的特性简单而言,你想要代码自动执行,就用事件过程写事件过程之前先
11、想好对象是什么?动作是什么?如果想要手工执行代码,那么就用普通过程事件过程必须放在它所属性的对象中 例如Sheet1的事件过程放在Sheet1的代码窗口Shee3的事件过程放在Sheet3的代码窗口 工作簿事件过程必须放在ThisWorkbook窗口剩下的自定义函数和子过程放在模块中就行了一是 否需要自动执行二是代码的保存位置事件必须放在它所关联的对象中才可以 再说说代码的保存方式保存方式总和文件格式相关联的所以先了解文件格式Excel通用的格式是xls此格式有Excel 97到2013都通用所以如果你很在乎文件通用,人人都可以打开,就将文件保存为xl
12、s格式其次是xlsx格式这是一种2007开始推行的压缩格式,支持更多的行与列xlsx文件支持1048576行 16384列而xls格式只支持65536行 256列xlsx文件另一优点是与xls文件同样的内容时将拥有更小和体积因为它是压缩格式另外,xlsx文件不能保存宏代码 当你保存文件时,如果工作簿中有宏代码,那么宏代码自动消失 相信大家都看过这个提示看到这个提示 就应该明白两件事 1.你的工作簿中有宏代码,或者有宏表函数2.你选择的文件格式错了如果你想要保存你的代码,请重新选择xlsm格式那么xlsx不能保存代码,还有优点吗?其实有一个大大的优点 那么xlsx
13、不能保存代码,还有优点吗?其实有一个大大的优点 因为它自动丢失代码 所以你的电脑永远不会中宏病毒 一切宏病毒都自动消失 当然,进本群者都需要保存代码,所以请用xlsm格式xlsm格式同样是2007增的格式,拥有更多的行与列能保存代码 接上面的话题,假设每个文件都保存时都要重新选择一下格式,岂非麻烦?微软已经预先解决了这个问题 请看上图使用Alt+T+O组合键 打开选项对话框然后调一下格式,以后所有文件自动保存为xlsm格式一劳永逸 最后一点,讲解如何保存代码代码有两种保存方式一是保存在工作簿中 那么在VBE界面按下Ctrl+S就行了在保存工作簿的同时,也保存了代码二次是将代码/模块单独保存对有代码的模块单击右键 ,选择导出文件就行了生成一个模块文件,假设模块中的代码很有价值,以后可以导入模块,直接复制里面的代码应用不过,我的建议是大家平常要注意收集好的代码,放在Word里,而不是模块中Word里可以加更多的注释,而且方便查找当然和工作簿放在一起也可以,好处是保存代码的同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度灯光音响租赁服务合同
- 2024年度股权转让合同标的及合同属性8篇
- 大学实验室共建协议2024年度
- 4s店汽车销售合同范文 2篇
- 二零二四版铁路建设中隧道爆破施工合同
- 二零二四年度房地产经纪与销售合同
- 二零二四年度棉花机械采摘专利使用权转让合同
- 2024年度大数据分析合作保密合同
- 二零二四年度影视制作合同标的及制作周期与费用
- 合伙承包工工程合同范本
- 初中数学基于核心素养导向的大单元教学设计(共50张)
- ETI 基本准则Base Code-中文OK
- 光伏发电项目技术标投标文件
- 四年级上册四则混合运算300题及答案
- 过敏性休克演练试题及答案
- 2024年-四川省安全员-C证考试题库
- 军士生生涯规划
- 西安游学报告
- 中药学专业职业生涯发展报告
- 迎中考初三学生家长动员会课件
- 广州白云区经济分析报告
评论
0/150
提交评论