工资条的数据来源于工资表,不同之处在于工资条的每一员工的工资记录都有一行表头信息。用宏记录一次工资条表头的转换,然后实现循环操作,再通过按一个命令按钮执行宏即可生成带表头的工资条。【例10-3】 利用EXCEL宏制作佳园公司单行工资条,并生成相关功能按钮。
【原理与思路】在EXCEL中利用宏和VBA自动生成工资条,主要流程是录制插入工资条标题行的宏,然后为代码添加循环,并把这段代码指定给工具按钮,为了方便逆向操作可以在按相同的思路生成一段删除标题行的代码,并制作相应的工具按钮。
(1)录制前先选中A1单元格(特别注意),即工资条标题行所在的最左上角单元格。
(2)然后再执行录制宏操作。单击【视图】选项卡中【宏】组下的“录制宏”命令,如图10- 28所示。
图10-28 “录制宏”命令
(3)在“录制新宏”的窗口中输入宏名“生成工资条”,快捷键设置为“Ctrl+P”,将宏保存在“当前工作簿”,并输入相关说明“根据当前工资表生成单行工资条,由YSH于2015年10月录制”,如图10-29所示。
图10-29 录制新宏窗口
(4)使用“相对引用”方式录制宏。单击【视图】选项卡中【宏】组下的“使用相对引用(U)”,如图10-30所示。
(5)复制第1行标题,在第3行行标处“插入复制的单元格”,为了使每个员工的工资条之间空一行,我们再在新的标题行前插入一空白行,如图10-31所示。
图10-30 使用相对引用
图10-31 插入行
(6)选定A3:K3单元格,点击右键修改单元格格式,去除单元格中间的竖线,如图10-32所示。
(7)将光标定位于A4单元格(特别注意),然后单击【视图】选项卡中【宏】组下的“停止录制”,如图10-33所示。或者点击EXCEL工作簿左下角状态栏“就绪”后的蓝色小方块来停止录制宏。
(8)按Alt+F11组合键(或者单击“查看宏”中的“编辑”按钮),调出VBA工程资源管理器,在相关位置增加以下三行代码,如图10-34所示。
图10-32 设置单元格格式
图10-33 停止录制
Dimi
Fori=1To23(最前面两行)
Next(倒数第二行)
其含义是添加一个计数循环。工资共有25条记录,由于第1行不需要设置,我们已经设置了一条记录,因此,这里还要增添23个工资条标题,所以写成Fori=1 To23。
图10-34 增加代码
(9)按前面设置的快捷键Ctrl+P执行该宏,结果如图10-35所示。如果不添加相关功能按钮,我们的操作到此结束。
图10-35 “生成工资条”宏执行结果
(10)由于我们还要添加“生成工资条”和“还原工资条”功能按钮,进行反复操作和逆操作,因此,对于重新执行宏时,我们应循环24次,这样就必须将原来VBA工程资源管理器的代码由23修改为24,结果如图10-36所示。
图10-36 修改代码
(11)接下来,单击【开发工具】选项卡,选择“控件”组中的“插入”按钮。在打开的“控件”面板中,单击“表单控件”组中的“命令”按钮,在工资表的右侧适当位置进行拖拽,此时弹出“指定宏”设置窗口,如图10-37所示,我们选择“生成工资条”。
(www.xing528.com)
图10-37 指定宏
(12)然后,工资表的右侧出现“按钮1”的功能按钮,我们右键单击(对按钮的所有设置均只能点击右键)将其修改“生成工资条”,如图10-38所示。
图10-38 “生成工资条”按钮
(13)录制“还原工资表”宏。首先将光标定位于A3这一空单元格(特别注意),然后单击【视图】选项卡中【宏】组下的“录制宏”,如图10-39所示。
图10-39 “录制宏”选项
(14)在“录制新宏”的窗口中输入宏名“还原工资表”,快捷键设置为“Ctrl+Q”,将宏保存在“当前工作簿”,并输入相关说明“将生成的工资条还原为工资表,由YSH于2015年10月录制”,如图10-40所示。
图10-40 录制新宏窗口
(15)由于“使用相对引用”已起作用,不用再进行选择。现在我们要删除第3行空白和第4行标题,如图10-41所示。
图10-41 删除第3行和第4行
(16)将光标定位于A4单元格(特别注意),单击【视图】选项卡中【宏】组下的“停止录制”,如图10-42所示。
(17)按Alt+F11组合键(或者单击“查看宏”中的“编辑”按钮),调出VBA工程资源管理器,与前面类似,在相关位置增加三行代码,结果如图10-43所示。然后按前面设置的快捷键Ctrl+Q执行“还原工资表”宏。
(18)添加“还原工资表”功能按钮。复制已有的“生成工资条”功能按钮,粘贴到工资表右侧适当位置,并将按钮内的文字修改为“还原工资表”,用右键点击“还原工资表”,选择“指定宏”,如图10-44所示。
图10-42 停止录制
图10-43 修改代码
图10-44 “指定宏”选项
(19)在“指定宏”窗口中选择宏名为“还原工资表”,如图10-45所示,单击“确定”。
图10-45 指定宏
(20)由于我们要进行反复操作和逆操作,因此,对于重新执行“还原工资表”宏时,我们应循环24次,这样就必须将原来VBA工程资源管理器中的代码由23修改为24,结果如图10-46所示。
(21)对于接下来的反复操作和逆操作来说,最重要的是定位好操作的起始单元格。对于生成工资条来说,首先要将光标定位于A1单元格(特别注意),如图10-47所示,然后点击“生成工资条”按钮。对于执行后生成的工资条来说,要还原工资条为工资表,首先要将光标定位于A3单元格(特别注意),如图10-48所示,然后点击“还原工资表”按钮,否则,每次操作和逆操作会误删工资表中的记录。
图10-46 修改代码
图10-47 生成工资条
(22)最后,将该工作簿保存时,应将保存类型设置为“EXCEL启用宏的工作簿(*.xlsm)”,如图10-49所示。这样,以后再次打开该工作簿时,所有的宏均保存于该工作簿。
图10-48 还原工资表
图10-49 修改保存类型
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。