Excel打印工资条表头(一行两行三行表头)代码分析 下载本文

Excel中添加打印工资表头及删除打印工资表头 一、当工资表表头行数为一行时:

(1) 执行“工具→宏→Visual Basic编辑器”命令,进入“Visual Basic编辑”窗口。执行“插入→模块”命令,插入一个模块(如“模块1”),双击“模块1”在窗口右边展开“模块1(代码)”编辑窗口,输入如下代码:

Sub 添加打印工资表头() '

'描述:从第二行数据开始,给每一行添加第一行的数据表头 '========下面的代码适合Excel2000/Excel2003版=======

'xustudio = [A65536].End(xlUp).Row - 2 '根据A列的文字,判断数据的行数 'xu = 2

'For zz = 1 To xustudio 'studio = zz + xu 'Rows(\ 'Selection.Copy 'Rows(studio).Select

'Selection.Insert Shift:=xlDown 'xu = xu + 1 'Next

'Application.CutCopyMode = False

xustudio = ActiveSheet.UsedRange.Rows.Count - 2 '根据使用的区域,判断数据的行数 xu = 2

For zz = 1 To xustudio studio = zz + xu

If ActiveSheet.UsedRange.Rows.Count >= ActiveSheet.Rows.Count Then '判断是否到表格底部 MsgBox \已到表格底部,无法添加表头!\提示\ Exit Sub Else

Application.ScreenUpdating = False ActiveSheet.Rows(\ Selection.Copy

ActiveSheet.Rows(studio).Select Selection.Insert Shift:=xlDown xu = xu + 1

Application.CutCopyMode = False End If Next End Sub

(2) 输入完成后,关闭VBA编辑窗口返回工作表状态,执行‘工具--宏--宏’中的‘添加打印工资表头’即可完成自动添加。

打印完毕,如果需要删除刚刚添加的表头,恢复到原先样式可进行如下操作:

(1) 执行“工具→宏→Visual Basic编辑器”命令,进入“Visual Basic编辑”窗口。执行“插入→模块”命令,插入一个模块(如“模块2”),双击“模块2”在窗口右边展开“模块2(代码)”编辑窗口,输入如下代码:

Sub 删除多余工资表头()

'========下面的代码适合Excel2000/Excel2003版================================ 'xuustudio = [A65536].End(xlUp).Row '根据A列的文字,判断数据的行数 'For xu = 1 To xxstudio - 2 Step 2 ' studio = xustudio - xu ' Rows(studio).Select

' Selection.Delete Shift:=xlUp 'Next

xustudio = ActiveSheet.UsedRange.Rows.Count '根据使用的区域,判断数据的行数 For xu = xustudio To 2 Step -1

Application.ScreenUpdating = False

If Cells(xu, 1) = Cells(1, 1) Then '与A1单元格进行比较 ActiveSheet.Rows(xu).Select Selection.Delete Shift:=xlUp End If Next

End Sub

(2) 输入完成后,关闭VBA编辑窗口返回工作表状态,执行‘工具--宏--宏’中的‘删除多余工资表头’即可删除通过‘添加打印工资表头’生成的工资表头,只保留第一行的表头内容。

当然,如果工作中经常需要使用上述两个宏,可以通过自定义工具栏的方式,将两个宏添加到工具栏中,来提高操作的速度。 二、当工资表表头行数为两行时:

(1) 执行“工具→宏→Visual Basic编辑器”命令,进入“Visual Basic编辑”窗口。执行“插入→模块”命令,插入一个模块(如“模块1”),双击“模块1”在窗口右边展开“模块1(代码)”编辑窗口,输入如下代码:

Sub 添加打印工资表头() '

'描述:从第二行数据开始,给每一行添加第一行的数据表头 '========下面的代码适合Excel2000/Excel2003版=======

'xustudio = [A65536].End(xlUp).Row - 3 '根据A列的文字,判断数据的行数

'xu = 2

'For zz = 2 To xustudio 'studio = zz + xu 'Rows(\ 'Selection.Copy

'Rows(studio).Select

'Selection.Insert Shift:=xlDown 'xu = xu + 2 'Next

'Application.CutCopyMode = False

xustudio = ActiveSheet.UsedRange.Rows.Count - 2 '根据使用的区域,判断数据的行数 xu = 2

For zz = 2 To xustudio studio = zz + xu

If ActiveSheet.UsedRange.Rows.Count >= ActiveSheet.Rows.Count Then '判断是否到表格底部

MsgBox \已到表格底部,无法添加表头!\提示\ Exit Sub Else

Application.ScreenUpdating = False ActiveSheet.Rows(\ Selection.Copy

ActiveSheet.Rows(studio).Select Selection.Insert Shift:=xlDown xu = xu + 2

Application.CutCopyMode = False End If Next End Sub

(2) 输入完成后,关闭VBA编辑窗口返回工作表状态,执行‘工具--宏--宏’中的‘添加打印工资表头’即可完成自动添加。

打印完毕,如果需要删除刚刚添加的表头,恢复到原先样式可进行如下操作: