香港宋韶光内部版:excel宏的概念

来源:百度文库 编辑:九乡新闻网 时间:2024/05/03 06:44:05
excel宏是什么?
  宏是VBA语言编出的一段程序,是一系列命令和函数,存储于 Visual Basic 模块中,并且在需要执行该项任务时可随时运行。
  excel宏,就是一组指令集,通过执行类似批处理的一组命令,目的是让宏来替我们实现任务执行的自动化。
  在OFFICE组件中,比如Word和Excel软件都引入了宏的概念。

  excel宏的应用
  宏是指使用VB Script指令集(VB编程语言的子集,可以使用VB的常用语句)编写的针对Office组件的小程序。
  利用宏,我们可以完成很多程序原本并不支持的特殊应用,比如完成某种特殊的数据计算,或者文档的特殊格式排版等等。

  excel宏的简单应用实例
  宏是一个非常有用的工具,可以提供工作效率。下面,我们以一个简单的例子,看看Excel宏的应用。
  比如我们可以创建并执行一个宏,以替代人工进行一系列费时而重复的操作。
  "记录宏"其实就是将一系列操作结果录制下来,并命名存储(相当于VB中一个子程序),这就是录制新宏。在Excel中,"记录宏"仅记录操作结果,而不记录操作过程。
  例如,改变文字字体时,需要打开"字体"栏中的下拉列表,再选择一种字体,这时文字即变为所选择的字体,这是一个过程,结果是将所选择的文字改变为所选择的字体。而"记录宏"则只记录"将所选择的文字改变为所选择的字体"这一结果。
  当我们在录制宏时,为宏指定了快捷键,当我们按下指定的快捷键就可以执行一条命令。

  学习宏需要注意下面三点:
  1.为宏指定快捷键会覆盖EXCEL默认的快捷键。例如:把CTRL+C指定给某个宏,那么CTRL+C就不再执行复制命令。
  2.宏对文件的一切操作是不可撤消的,在不了解宏的功能之前,最好的方法是先保存文件(最好是备份一份),然后再运行宏,如果发现宏运行后的结果有误,就可以关闭文件且不保存,这样再打开文件就可以还原到运行宏前的状态(注:宏也可以自行保存文件,这时这个办法就无效了)。
  3.如果以前未曾使用过宏,需要首先设置一下:单击工具——选项——安全性——宏安全性,勾选“中”或“低”,退出Excel后再重新进入就可以正常使用了,否则会提示出错,或者是宏被禁止运行。
excel宏的制作方法如下:

  第一步,录制新宏
  选择“工具-宏-录制新宏”,在对话框中,为你将要做的宏设定一个快捷键。确定之后,可以看到一个小的工具栏,上面有个“停”字。从现在开始,你的每一步操作都会被记录下来,直到单击“停”字下面的按钮,结束宏录制过程。替换默认宏名主要是便于分别这些宏。宏名最多可为255个字符,并且必须以字母开始。其中可用的字符包括:字母、数字和下划线。宏名中不允许出现空格。通常用下划线代表空格。

  第二步,执行宏
  录制完一个宏后之后就可以执行它了,只要,就会重复刚才的一系列操作。
  当执行一个宏时,EXCEL按照宏语句执行的情况就像VBA代码在对EXCEL进行“遥控”。但VBA的“遥控”不仅能使操作变得简便,还能使你获得一些使用EXCEL标准命令所无法实现的功能。
  要执行刚才录制的宏,可以按以下步骤进行:
  1)选择任何一个单元格。 2)选择“工具”—“宏”—“宏”,显示“宏”对话框。 3)选择自己录制的宏名,选择“执行”。
  或者是直接按下按初始设定的快捷键,也可以执行宏。

  查看录制的代码
  选择“工具”—“宏”—“宏”,显示“宏”对话框。 单击列表中的自己定义的宏名,选择“编辑”按钮。 此时,会打开VBA的编辑器窗口(VBE),在这里我们可以看到VBA的语句。(关于VBA知识,请参考《excel中VBA基础入门介绍》等文章)

  编辑录制的宏
  需要编辑宏是因为以下三个方面的原因。一:在录制中出错而不得不修改。二:录制的宏中有多余的语句需要删除,提高宏的运行速度。三:希望增加宏的功能。比如:加入判断或循环等无法录制的语句。

  录制宏的局限性
  希望自动化的许多EXCEL过程大多都可以用录制宏来完成.但是宏记录器存在以下局限性.通过宏记录器无法完成的工作有:
  1)录制的宏无判断或循环能力。2)人机交互能力差,即用户无法进行输入,计算机无法给出提示。3)无法显示EXCEL对话框。4)无法显示自定义窗体。
案例在excel中,我们可以通过现有的宏,加载到excel文档中,让我们不用自己编写公式和代码,以提高工作效率。

  比如我们可以通过加载一个关于根据身份证求所属省份、性别、出生日期的宏来实现省份、性别、出生日期的自动输入。

  在Excel文档中,要输入员工的身份证号、所属省份、性别、出生日期等。如果员工数量成千上万个,相关个人信息的输入工作量无疑是相当大的。我们可以通过Excel加载宏,来省去大量繁琐的输入,变得更轻松,从而提高工作效率。

  下面就是利用一个Excel加载宏的实例,通过其操作步骤,来说明excel如何加载宏。

  第一步,先下载Excel加载宏文件——“宏:根据身份证求户籍、性别、出生日期.xla”。

  第二步,打开excel文档,单击“工具”菜单——“加载宏”命令,打开“加载宏”对话框,单击“浏览”按钮,找到“宏:根据身份证求户籍、性别、出生日期.xla”文件,单击“确定”,可以看到“宏:根据身份证求户籍、性别、出生日期.xla”文件已经添加进来,勾选“宏:根据身份证求户籍、性别、出生日期.xla”。

  通过上两步就完成了Excel加载宏“宏:根据身份证求户籍、性别、出生日期.xla”的添加操作。

  第三步,我们在A列输入了身份证号码,在B2单元格输入函数“=sfz(A2,"DQ")”(不包括最外侧引号,下同),回车之后往下拖动填充手柄以完成所有员工“所属省份”户籍地信息的快速录入操作。当然,依此类推在C2单元格中输入函数“=sfz(A2,"SR")”,在D2单元格中输入函数“=sfz(A2,"XB")”并往下拖动填充手柄,还可以快速地完成“出生日期”和“性别”等信息的快速录入操作。

  如果你也对“根据身份证求户籍、性别、出生日期”这个宏感兴趣,可以在这里下载:http://www.blwbbs.com/forum.php?mod=viewthread&tid=610&extra=。如何输入身份证号码默认情况下,Excel中每个单元格所能显示的数字为11位,输入超过12位的数值,系统自动将其转换为科学记数格式,如果输入超过15位的数值,系统自动将15位以后的数值转换为“0”。比如123456789012,就会显示为1.23457E+11。

  这些都是excel软件本身的原因,Excel软件会把超出12位以上的数值自动转换成小数,就出现了上述情况。

  如果我们需要在单元格输入身份证号码,以上设置就不能符合我们的要求。为了能让这些长位数数值完整显示出来,就需要使用下面介绍的方法,将单元格转换成文本格式,然后再输入。

  excel如何输入身份证号码的第一种方法:

  在输入之前,先选中要输入身份证号码的整列,然后依次单击进入“格式|单元格|数字”,在“分类”中选择“文本”即可。另外一个办法就是在“分类”中选择“自定义”,然后在右边“类型”选项中选择“@”就可以了。

  注意:必须先定义格式,然后输入号码。如果输好号码再定格式,显示会不正确。

  excel如何输入身份证号码的第二种方法:

  在输入这些长数值时,先输入一个英文状态下的单引号(“'”),然后接头输入数值即可。

  注意:这种方法适合输入少量的长数值,输入的英文状态下的单引号不影响显示和打印身份证号自动显示出生日期、年龄、性别在excel表格中,根据身份证号码就可以自动提取出生年月、性别、年龄。

  第一,身份证号码的组成。
  当今的身份证号码由18位数字组成:前6位为地址码,第7至14位为出生日期码,第15至17位为顺序码,第18位为校验码。
  15~17位为顺序号,其中第17位如果是单数为男性分配码,双数为女性分配码。即通过第17位数字,可以判断性别,奇数为男,偶数为女。

  下面以实例的方式讲解如何根据身份证号码自动提取出生年月、性别、年龄。首先,在excel中输入以下表格,实例如下面所示。
  (身份证号码的输入方法见IT部落窝《excel如何输入身份证号码》文章介绍,网址是: http://www.ittribalwo.com/show.asp?id=266)
   A          B                 C             D         E
  姓名   身份证号码          出生日期      性别   年龄
  张三   510321197205030786   1972年05月03日       女    37

  第二,根据身份证号码自动提取出生年月
  在目标单元格输入公式:=MID(B2,7,4)&"年"&MID(B2,11,2)&"月"&MID(B2,13,2)&"日",回车确定,单元格内会出现与身份证号码相关的出生日期。其它单元格的填充,不必一一输入公式,只需选中该单元格复制,在其它单元格内粘贴即可。
  提示:MID函数是提供的一个“从字符串中提取部分字符”的函数命令。

  第三,根据身份证号码自动提取性别的方法
  在目标单元格输入公式:=IF(MOD(RIGHT(LEFT(B2,17)),2),"男","女")
  提示:IF函数:根据逻辑表达式测试的结果,返回相应的值。IF函数允许嵌套。
  RIGHT函数:根据所指定的字符数返回文本串中最后一个或多个字符。

  第四,根据身份证号码自动提取年龄的方法
  在目标单元格输入公式:=DATEDIF(TEXT(MID(B2,7,6+2*(LEN(B2)=18)),"#-00-00"),NOW(),"y"),回车确定。给宏创建快捷键 如果我们需要经常使用自定义的宏来简化操作,可以为宏自定义快捷键,或者将制作的宏命令拖到工具栏上。

  为宏指定快捷键的方法如下:

  当给宏指定了快捷键后,就可以用快捷键来执行宏,而不必通过"工具"菜单。

  为宏指定快捷键会覆盖默认的快捷键。例如:把CTRL+C指定给某个宏,那么CTRL+C就不再执行默认的复制命令。

  可以在创建宏时指定快捷键,也可以在创建后再指定。要在创建(录制)宏时指定快捷键,只须在录制宏时在输入宏名后,在"快捷键"文本框中输入相应的键。

  在excel中,录制宏后指定快捷键,只需选择"工具""宏",显示"宏"对话框,选择要指定快捷键的宏,再单击"选项"按钮,通过"选项"对话框进行设置。

  在Word中,单击菜单“工具——自定义——命令选项卡”,在“类别”下找到“宏”,在“命令”下面选择需要指定快捷键的宏,直接将此宏拖到工具栏上。或者单击“键盘”,再次在“类别”下找到“宏”,在右边找到需要指定快捷键的宏,左“请按新快捷键”处点一下,输入快捷键,再指定就完成了。

  这样以后需要使用宏,只需单击工具栏上的此命令或者按下快捷键,非常方便通过宏来创建快捷图标细心的读者会发现我们使用IE浏览器上网时,上面的工具栏中就有其余的软件图标,我们只要单击该图标,就可以快速打开相关的程序。

  其实,我们在使用Word进行编排文档时,有时也需要调用一些外部程序,如在编辑文件的过程中,突然要用到截图软件、excel等等。通常情况下,我们都是直接单击“开始”菜单找相关的程序或者回到桌面双击程序快捷图标,这样的操作就是稍微有些繁琐。其实我们可以在Word中将其余外部程序以图标的形式放到工具条上,随用随点,非常方便。

  Word中利用宏实现调用其它程序的方法具体操作步骤如下:

  启动Word软件后,执行“工具→宏→宏…”命令,调出“宏”对话框,在“宏名”文本框中键入宏的名称,以“ACDSee”为例,然后单击“创建”按钮,Word会自动进入VisualBasic编辑器。

  在VB代码窗口中已经自动加入了几行代码,在“SubACDSee()”和“EndSub”之间,加入我们自己的代码:Shell "C:\Program Files\ACDSee5\ACDSee5.exe",Shell是Word宏中用来运行外部程序的命令,空一格然后在西文双引号之间输入你想要运行的程序的路径和程序名即可,然后关闭VB编辑器回到Word编辑窗口中。全部代码显示如下:

Sub ACDSee()
'
' ACDSee Macro
' 宏在 2010-7-14 由 www.ittribalwo.com 创建
'
Shell "C:\Program Files\ACDSee5\ACDSee5.exe"
End Sub

  执行“工具→自定义”命令调出“自定义”对话框,单击“命令”标签,在左边“类别”中选择“宏”,然后将右边的“命令”框中一个名为“Normal.NewMacros.ACDSee”的命令拖放到工具栏适当的位置。右键单击这个新的命令按钮,从右键菜单中选择“默认样式”即可。我们还可以通过“更改按钮图标”为此按钮更换图标。

  之后在Word中编辑文档时,就可以通过单击这个按钮随时调用ACDSee看图片了。使用这种方法,可以将其余常用的应用程序都可以添加进工具栏中。