for函数:循环
1.生成工资条,回复工资表
下图为某单位员工的工资表,我们需要把它变成工资条的形式
1.png
1.1 录制一个隔行插入宏
首先我们作为一个初学者,什么都不懂,所以我们首先需要录制一个宏:
1.1.1 选中第一行(标题行),我们首先切换到开发工具栏中,勾选录制宏下面的“使用相对引用”,然后再点击录制宏。
2.png
1.1.2 复制标题行数据,到第三行插入复制单元格。
3.png
1.1.3 停止录制宏,执行刚录制的宏文件,测试宏文件是否可以使用,是否达到预期效果(隔行插入的效果)。
1.2 使用for循环生成工资条
Sub gzt()
Dim i As Integer ‘定义i为整数型’
Rows("1:1").Select ‘当程序执行时首先选中第一行(这句代码一开始是没有的,需要录制一个选定第一行的宏进行获取),因为是相对引用,如果没有这句,程序会从你选定的行开始向下执行’
For i = 1 To 10 ‘循环10次’
Selection.Copy ‘复制选中行’
ActiveCell.Offset(2, 0).Rows("1:1").EntireRow.Select ‘与选中行隔行’
Selection.Insert Shift:=xlDown ‘插入复制单元格’
Next ‘for循环结束’
End Sub
效果:
4.png
1.3 录制一个隔行删除宏
因为我们什么操作代码都不知道,所以和生成工资条一样,我们需要录制一个宏。
1.3.1 勾选使用相对引用,选中第三行,开始录制宏
5.png
1.3.2 删除选中行,选中下一个标题行,选中即可,停止录制。
6.png
1.3.3 测试刚才录制的宏是否有效果。
1.4 回复工资表程序代码
Sub gzb()
Dim i As Integer
Rows("3:3").Select ‘选中第三行,没必要录制宏复制黏贴了,把工资条里面的选中行代码拿过来改动一下就可以了,这句代码也很好理解,rows(“3:3”)代表第三行,select 选中’
For i = 1 To 10
Selection.Delete Shift:=xlUp ‘选中删除’
ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select ‘和工资条里面的代码对比一下就知道,这个指下移一行选中,工资条里则是下移两行选中’
Next
End Sub
效果:
7.gif
插入按钮这玩意儿容易,就不赘述了,注意把按钮属性改为大小位置均固定。
8