在excel中如何使用宏

在excel中如何使用宏
09-08-27  匿名提问 发布
2个回答
时间
投票
  • 0

    可爱你的爱

    中文EXCEL 7.0宏的使用方法、技巧详解
    Excel的宏是由一系列的Visual Basic语言代码构成的,因此,如果你熟悉VisualBasic语言,可以用它编写为宏,如果用户不熟悉VB语言,可以用记录功能建立宏。下面详细介绍一下有关的方法和技巧。一、建立宏要想建立一个宏,方法有两种:一是用宏记录器记录所要执行的一系列操作;二是用Visual Basic语言编写。这两种方法各有优越之处,自动记录宏可以使用户在不懂Visual Basic语言的情况下也可建立自己的宏,但缺点是对于一些复杂的宏要记录的操作很多,而且可能有些功能并非是能通过现有的操作所能完成的;自己动手编写宏则不必进行繁琐的操作而且能实现自动记录所不能完成的一些功能。在这里需要说明的一点是,即使自动记录的宏,记录器也是把它翻译成Visual Basic语言来存放的,因此,在这里的一点技巧是你可以使用自动记录功能记录宏,记录完毕后再打开宏进行编辑、修改简化或增强宏的功能,这样可省去许多输入代码的工作。建立宏的方法如下:1.在"工具"菜单中,选择"记录宏",再单击右侧的"记录新宏"命令。2.在对话框中输入宏名。可以使用省略宏名如"宏2",也可以在"宏名"框中键入另一名称。3.若要给出宏的简单说明,在"说明"框中可键入描述性文字。4.若要设置有关宏的选项,单击"选项"。5.单击"确定",然后执行所记录的操作。6.操作完成之后,在"工具"菜单中, 选择"记录宏",右侧的"记录新宏"命令已变成了"停止记录",单击即可结束。"记录宏"命令下的其它三个选项的说明:"使用相对引用"——此项为一开关选项,此开关不打开时,记录宏使用单元格绝对引用,用这种方式记录的宏总是在最初记录宏的单元格位置操作。此开关打开之后,用户在任何情况下都可以使用宏而不是在特定的单元或范围中才能使用,当然存储此宏的工作簿必须在打开的情况下宏才能使用,使用相对引用可使记录的宏使用更灵活。"标示记录位置"和"在标示处记录"——指的是确定开始记录宏的位置,从此处开始记录宏的代码。注意:此两选项只对"模块"工作表(记录操作后翻译为VB代码的工作表Module)有效。"记录新宏"对话框的选项说明:"工具"菜单下的菜单项——可以将宏加入到"工具"菜单下,作为一个菜单选项,以供方便使用。快捷键——通过指定快捷键执行宏。需注意的一点是:当包含宏的工作薄打开时,此宏的快捷键优先Microsoft Excel快捷键执行, 因此,如果你为宏设置的快捷键和Excel的快捷键相同的话,那么Excel的快捷键将不能发挥作用,要尽量避免快捷键相同。保存到"个人工作簿"——"个人工作簿"是一个隐蔽的工作簿,一般情况下启动Excel时会自动打开它,因此,如果将常用的宏保存在其中, 可以在任何工作簿中使用,建议将非专用的宏都放在此簿中,使用方便,管理也方便。保存到"当前工作簿"——将宏存储到当前工作簿中,只有当记录该宏的工作簿打开时,本工作簿和其它的工作簿才能使用它,一般的工作簿专用宏用此选项。保存到"新工作簿"——将宏保存到新的工作簿中,该项意义不大,一般很少用。语言选项——Visual Basic,将记录的操作翻译为Visual Basic语言,这是常用的选项。MS Excel 4.0 宏语言,将操作翻译为Excel 4.0的宏语言,如果你对4.0版的宏语言不熟悉,尽量不要采用此选项,否则给以后的编辑、修改带来麻烦。上面介绍的是用记录的方式建立宏,如何直接用Visual Basic语言编辑宏呢?首先还是要按照上面的步骤进行到第5步时, 单击"确定"后,不是进行操作而是开始编写VB代码。这里有两种情况:1.如果你的工作簿中已经有了一个用来记录宏的"模块"工作表,最好在建立宏之前将其切换到前台(激活),然后再建立新宏。在这种情况下,单击"确定"按钮之后, Excel将自动在"模块"工作表中生成新宏的代码框架,一行为SUB "宏名",下一行为END SUB, 此时你就可以在两行之间直接输入VB代码了。输入完毕,要执行"停止记录"命令。2.如果你的工作簿中还没有"模块"工作表, 那么你从工作簿底部可以看到Excel为你新建了一个,用鼠标激活它,这时你将看到刚才激活它的操作已被记录成代码,一般来说这是我们不需要的,将此行代码删除,然后编写你自己的代码即可。二、执行宏一个宏建立完毕后就可以执行了,执行宏的方法有多种,可根据具体情况采用不同的方法,下面介绍常用的几种方法。1.用"工具"菜单下的"宏"命令执行打开"工具"菜单,选择"宏",在对话框中输入要运行的宏的名字或用鼠标在宏列表中选择都可以,然后单击"执行"按钮。2.用快捷键执行宏如果你在建立宏时,为宏指定了快捷键,那么直接按快捷键即可,这是比较快捷的方法,缺点是需要记住每个宏的快捷键。3.如果在建立宏时,为宏指定了在"工具"菜单下的菜单项,那么打开"工具"菜单后执行所对应的菜单项命令即可。4.在模块文件中执行宏建立的宏都是存储在模块文件中的,激活模块文件后,将光标移到所要执行的宏代码中的任何位置(SUB和END SUB之间),按F5键即可执行。如果光标不在宏代码之间,按F5后将会激活运行宏的对话框,与第一种方法相同。如果VISUAL BASIC工具栏处于激活状态,那么单击VISUAL BASIC工具栏中"执行宏"按钮也可执行。这种执行宏的方法比较适合于对刚记录的宏进行验证或修改后验证时采用。5.通过将宏指定为按钮或图形来执行单击常用工具栏上的"绘图"按钮,可以在工作表中建立图形或按钮,建立图形后,单击鼠标右键,在快捷菜单中单击"指定宏"命令,在"宏名/引用"对话框中,键入宏名; 如果建立的是按钮,则创建完毕自动出现指定宏对话框。单击"确定"按钮,这样就可以将按钮或图形指定为一个宏,当单击此按钮或图形对象时,宏将自动执行。此种方法适用于在自己的工作表中使用的专用宏,可将其放在合适的位置,随时单击运行。注意:在指定宏操作完毕后关闭绘图工具栏时,一定要使其中的"选定图形"按钮处于弹起状态,否则单击按钮或图形将不能执行宏,而且也不能选择单元格。6.通过将宏指定给工具栏按钮执行在"视图"菜单中,单击"工具栏"命令,若要创建一个新的工具栏并自定义工具栏按钮,在"工具栏名称"对话框中键入新工具栏名,再单击"新建"按钮(如果要为已有的工具栏添加按钮,则单击"自定义"),此时在对话框左上方就出现自定义的工具栏。然后在"自定义工具栏"对话框的"分类"列表框中单击"自定义"命令,再从"工具按钮"下面拖动喜爱的按钮到自定义的工具栏上,当把按钮放到工具栏上时,就会自动出现"指定宏"对话框,输入宏名后单击"确定"即可,此时又会出现"自定义工具栏"对话框,如果不再需要自定义按钮,单击"关闭"命令。这时自定义的工具栏一般比较小且是放置在工作表中的,双击其标题条,它自动变成长条状并放置到工作表上方的工具栏区。建议新建一个自己的自定义工具栏并将常用的公用宏放置在其上,这样使用起来很方便。三、编辑和删除宏一个宏建立之后可能不满意,需要编辑修改或其使命完成之后需要删除,下面是常用的一些方法。1.编辑、修改宏如果用户对Excel的Visual Basic语言不熟悉,那么最好的方法是重新记录宏,在新建宏时,在"宏名"框中输入原来的名字, 单击"确定",Excel将提示用户是否替换已存在的宏,单击"是"即可。如果用户熟悉VB语言,可直接对宏进行修改。单击菜单条中的"工具"选项,选择"宏"命令项,选择要编辑的宏,单击"编辑"按钮,就可以进行编辑了。此处有一点小技巧,如果你不想手工编写代码,将光标移到需要插入代码的位置,选择"工具"菜单中"记录宏"命令下的"在标示处记录"选项,然后可以进行操作,操作完毕后选择"停止记录",则刚才的操作就翻译成了VB代码,放在光标之后,利用这种方法可以为已有的宏增添新的功能,这种方法不生成SUB、END SUB代码,适用于现有宏的修改。另一种方法是单击工作簿底部的"模块"文件,其中存放的是宏的VB代码,在此处可同时修改其中所有的宏。修改已记录宏的一些技巧如下:A、去掉 Select 方法和 Selection 属性。记录器经常记录 Select 方法和 Selection 属性,但这会导致宏通用性受到限制,因为Select 方法和Selection 属性要求工作表是活动的。因此如果要记录的宏不是专用的,一般要将其去掉,用Worksheets 方法来代替操作对象,同样,对记录的ActiveCell属性一般也需要去掉。 B、去掉不必要的参数。记录器可能会记录一个方法的所有参数,如果只想修改其中一两个参数,可从录下的语句中清除不必要的参数,功能不变,程序也得到了简化。如果你想在当前工作簿中使用另一个工作簿(非个人工作簿)中的宏,可以将其复制过来,复制的方法是将另一个工作簿中的模块表复制到当前工作簿中,其操作和复制其它工作表是一样的,也可以通过剪贴板在模块表之间复制宏代码来达到复制宏的目的。2.删除宏删除宏的方法很简单,单击菜单条中的"工具"选项,选择"宏"命令项,选择要删除的宏,单击"删除"按钮,就可以删除了。这种删除只是使得此宏不能再执行了,如果你已为此宏指定了菜单项、工具栏按钮、图形等,它们也就没什么作用了,则需要启动相应的功能来删除这些对象。比如对定义到工具栏上的指定宏按钮的删除方法如下:在"视图"菜单中,单击"工具栏"命令,选择工具栏,单击"自定义"按钮,此时用鼠标左键将工具栏上需要删除的按钮从工具栏上拖离开工具栏即可删除它。

    09-08-27 | 添加评论 | 打赏

    评论读取中....

  • 0

    liulijuan6

    已修改回答,你的文件中有两个错误名称,是造成宏不能运行的主要原因,请手工删除这两个名称后,再运行DelNames。

    <BR/>附件:<a href="/browse/download.php?path=/13/20/04/1131132004.11817005.xls&filename=Names.xls" target="_blank">Names.xls</a> 定义了三个名称,工具-&gt;宏-&gt;执行即可全部一次性删除.
    语句:
    Public Sub x()
    Dim Item As Name
    For Each Item In ActiveWorkbook.Names
    Item.Delete
    Next Item
    End Sub<BR/>附件:<a href="/browse/download.php?path=/36/63/04/1284366304.11817005.xls&filename=x.xls" target="_blank">x.xls</a> 以下内容摘自Word2003的VB帮助文件:

    本示例实现的功能是:检查活动文档中的所有样式,如果检查到一个非内置样式,则显示该样式的名称。

    Dim styleLoop As Style

    For Each styleLoop in ActiveDocument.Styles
       If styleLoop.BuiltIn = False Then
           Msgbox styleLoop.NameLocal
       End If
    Next styleLoop
    你好,sheepdog老师,我试了一下,能做到,可是对我自己的工作表就不起作用了,
    我把一个工作表放到你上传的附件中,然后再删除这个工作表,只留下了名称,再执行时就有错误了,麻烦你再看一下是怎么回事,谢谢.

    顺便说一下,上次你给出的自动提取工作表名称并能在点击时自动打开工作表的语句很实用.
    <BR/>附件:<a href="/browse/download.php?path=/40/88/51/1355408851.11817005.xls&filename=x11.xls" target="_blank">x11.xls</a>

    09-09-01 | 添加评论 | 打赏

    评论读取中....

精华知识
更多  
意见反馈 帮助