洗好澡还算清醒,再把很久以前给我爸写的工资条制作方法整理下。

 首先还是看下案例表Sheet1的结构:

  A B C D E F
1 姓名 业绩 底薪 工龄 工龄工资 应发薪水
2 苏玟洁 450000 10000 1 1500 11500
3 罗丹伶 500000 15000 5 4000 19000
4 颜世璇 800000 15000 4 3000 18000
5 苏俊明 1000000 20000 3 2500 22500
6 王思涵 2500000 25000 2 2000 27000

 

 

 

 

 

 

 

 

 希望实现的效果:

  A B C D E F
1 姓名 业绩 底薪 工龄 工龄工资 应发薪水
2 苏玟洁 450000 10000 1 1500 11500
3 姓名 业绩 底薪 工龄 工龄工资 应发薪水
4 罗丹伶 500000 15000 5 4000 19000
5 姓名 业绩 底薪 工龄 工龄工资 应发薪水
6 颜世璇 800000 15000 4 3000 18000
7 姓名 业绩 底薪 工龄 工龄工资 应发薪水
8 苏俊明 1000000 20000 3 2500 22500
9 姓名 业绩 底薪 工龄 工龄工资 应发薪水
 10 王思涵 2500000 25000 2 2000 27000

 

 

 

 

 

 

 

 

 

 

 

 

  以下是宏代码:

Sub 生成工资单()
    '将Sheets(1)表复制到Sheet(2)中,做备份
    Sheets(1).[A1].CurrentRegion.Copy Sheets(2).[A1]
    '定义变量num,赋值为1
    num = 1
    '设定循环条件,以100人为例,<=100*3
    Do While num <= 300
    '第num+1行,第1列的值为空,则把刚添加的标题行删除,结束
    If Cells(num + 1, 1).Value = "" Then
    '选中num行
        Rows(num).Select
    '删除num行
        Selection.Delete
        Exit Sub
    End If
    num = num + 2
    '选中第1行第1列
    Rows("1:1").Select
    '选区复制
    Selection.Copy
    '选中num行
    Rows(num).Select
    '将复制的第1行的内容插入到该行上方
    Selection.Insert Shift:=xlDown
    Loop
End Sub

 也可在上述代码的基础上实现标题行为多行的工资单,如:

  A B C D E F
1 工资单
 2 姓名 业绩 底薪 工龄 工龄工资 应发薪水
 3 苏玟洁 450000 10000 1 1500 11500
 4 罗丹伶 500000 15000 5 4000 19000
 5 颜世璇 800000 15000 4 3000 18000
 6 苏俊明 1000000 20000 3 2500 22500
 7 王思涵 2500000 25000 2 2000 27000

 

 

 

 

 

 

 

 

 

 案例文件下载

 

 

posted on 2012-09-17 00:06  八风  阅读(1391)  评论(0编辑  收藏  举报