下面以工资表转成工资条为例,通过“录制宏”功能先把操作过程转成VBA代码,然后做必要的修改,使得这段VBA代码具备一定的智能性。

打开网易新闻 查看精彩图片

图1‑1 需要转成工资条样式的工资表

打开网易新闻 查看精彩图片

图1‑2 “录制宏”对话框

步骤1先选中如图1‑1所示表格里的A1单元格,接着点击“开发工具→使用相对引用”(此时“使用相对引用”处于被选中状态),再点击“录制宏”命令,弹出“录制宏”对话框,如上图1‑2所示,在“宏名”下的文本框里把默认的名字修改为“工资条”,在“保存在”下拉框里选择“当前工作簿”。至于快捷键可以不用设置,如果要设置,先把输入法切换到英文状态,然后点击“快捷键”下的文本框再敲个按键比如“Q”键,这时要注意字母大小写,若是输入了小写字母“q”,则快捷键变成“Ctrl+q”(本例此处输入了小写字母“q”),当然你也可以输入大写字母“Q”,则快捷键变成“Ctrl+Shift+Q”。单击“确定”按钮,“录制宏”就正式开始录制你的操作了。

¤ 采用“相对引用”方式并非录制宏的标准动作,但录制出的宏更灵活一点。若不选中“使用相对引用”按钮,就是“绝对引用”方式。

步骤2选中第1行标题,按组合键Ctrl+C复制,接着选中第3行并在此处右键单击选择“插入复制的单元格”,继续在第3行处右击选择“插入”,然后选中第4行,立即点击“开发工具→停止录制”。

¤ “录制宏”启用期间,严格按照上述步骤操作,鼠标尽量不要随意点击或选中,因为每一步操作都可能被录制下来,会产生一些冗余的VBA代码。

步骤3选中A1单元格或第1行,点击“开发工具→宏”(组合键是Alt+F8),在“宏”对话框里选中“工资条”宏,然后单击“执行”按钮,关闭“宏”对话框并在表里第3行插入了一行标题和一个空行,同时选中了第4行。但是,其他员工的标题行和空行仍然是没有的,这时需要不断地执行“工资条”宏,用快捷键调取这个宏会更方便:重复按快捷键Ctrl+Q若干次,直到所有人的工资记录之上都被插入了标题和空行。如图1‑3所示。

¤ 其实这一步骤可以简化为:先选中A1单元格,重复按快捷键Ctrl+Q若干次(实际是9次),就得到了所需要的工资条表样。

打开网易新闻 查看精彩图片

图1‑3 反复执行“工资条”宏生成的工资条表样

步骤4但是,上述反复执行“工资条”宏的操作显然不智能。为了让这个宏更加智能,按组合键Alt+F11进入VBA编辑器,手动去修改相关的VBA代码。在VBA编辑器里,双击左侧“工程资源管理器”窗格里当前工作簿下的“模块1”,就看到之前录制好的“工资条”宏,这些VBA代码如图7‑4所示。宏代码以“Sub”打头,以“End Sub”结束,中间是具体的VBA代码。另外单引号后的内容是注释,仅作为说明,不可能作为VBA语句被执行。这个“工资条”宏之所以不智能,主要因为缺乏变量和循环语句,可以在首句代码前添加一行VBA代码“For k = 1 To 9”,在“End Sub”前添加一行VBA代码“Next k”,还可以删除一些没有必要的注释行,如图1‑5所示。

¤ 如果看不到左侧的“工程资源管理器”窗格,那么点击“视图→工程资源管理器”(组合键是Ctrl+R)就可以调出来。

¤ 添加的“For…Next”代码是应用非常频繁的一种循环语句,它表示以指定次数重复执行一组动作,使得原先的单一操作得以批量执行。

¤ 代码“For k = 1 To 9”里的k是变量,从1变化到9,每次增加1。

¤ For语句与Next语句之间的代码就是被反复执行的语句,也叫循环体。

打开网易新闻 查看精彩图片

图1‑4 在VBA编辑器里查阅录制好的“工资条”宏

打开网易新闻 查看精彩图片

图1‑5 修改后的“工资条”宏代码

步骤5关闭VBA编辑器并返回到Excel(组合键是Alt+Q),选中单元格A1后按自定义的快捷键Ctrl+Q(录制宏时已设置好的快捷键),瞬间就得到了如图1‑3所示的工资条。

¤ 如图 1‑5所示的代码虽然已具备一定的智能性,但限制也不少,比如必须先选中第1行或第1行里某个单元格,再比如员工数必须是10人,如果不是这样,则执行宏后得到的结果就会有这样那样的问题。

¤ 录制宏只能作为编写VBA代码的一种辅助手段,更强大的VBA程序还得需要用户在深入学习VBA的基础上通过VBA编辑器去编写和调试。

步骤6点击“开发工具→宏安全性”,弹出“信任中心”对话框,在子选项卡“宏设置”里,为防备潜在的风险,建议选择“禁用所有宏,并发出通知”这个单选按钮,单击“确定”按钮。当前含有VBA代码的工作簿文件在保存或另存时,建议其保存类型应选择“Excel启用宏的工作簿(*.xlsm)”

6 从Excel 2007开始,在保存含有VBA代码的工作簿时,其保存类型应当选取“Excel启用宏的工作簿(*.xlsm)”,而“Excel工作簿(*.xlsx)”这种类型是不能保存VBA代码的。另外“Excel 97-2003工作簿(*.xls)”这种类型虽然也可以在工作簿里储存VBA代码,但因为文件格式兼容问题通常不是最佳选择。

阅读原文加入我的课程《Excel+PPT+Word小白变大神[520节]》

点击阅读原文,打开购买链接,一次购买课程,享受终生辅导

李则见老师大部分情况下都直接回答你关于课程本身的所有问题

我微信号change12365

让我成为你职场上office成长加速器

让我成为你职场上office软件技能的顾问

长期陪伴你一起成长一起进步一起转折

请火速加入这套课程,最终520节大餐,饕餮之夜等您开启

2021年找对目标,开始学习之旅,从此不再蹉跎时光

《Excel+PPT+Word小白变大神[520节]》

让李则见能成为您身边的长期的office顾问! 只需要加入本套视频课程即可。

推荐这套好网课

品质之选,精品之作

《530节-Excel+PPT+Word小白变大神》

打开网易新闻 查看精彩图片

本次大促力度很大,还没购买的学员朋友,

有需要的朋友,请火速加我微信change12365

给您超值惊喜,只此一次,绝不再有

我们会给您很多超越期待的回报和福利,史无前例的!

送Excel网课,送211套精品PPT模板!

送优惠券抵扣!你还想怎样?火速来!

最重要的是,学完此课程,升职加薪,绝对可以到来!

完爆99%的Office网课的520节在线视频课程

福利惊喜,喜出望外

一次购买,永久有效

辅导答疑,长期陪伴

系统深入,深入浅出

高手大神,承诺必达

史无前例,鸿篇巨制

千山万水,独此一家

宣传营销,没有花招

网课无数,学我不悔

超值视频,一套封神

技能宝典,必入囊中

正本清源,登峰捷径

购买前可以咨询李则见老师,微信号在上面

已有7900多人加入学习

而你却一直犹豫要不要学习

未来就在某个瞬间被决定了

你的思维限制了你的未来

点击“阅读原文”加入学习,改变自己,就在一点