Excel中添加打印工资表头及删除打印工资表头一、当工资表表头行数为一行时:(1)执行“工具→宏→VisualBasic编辑器”命令,进入“VisualBasic编辑”窗口。执行“插入→模块”命令,插入一个模块(如“模块1”),双击“模块1”在窗口右边展开“模块1(代码)”编辑窗口,输入如下代码:Sub添加打印工资表头()''描述:从第二行数据开始,给每一行添加第一行的数据表头'========下面的代码适合Excel2000/Excel2003版======='xustudio=[A65536].End(xlUp).Row-2'根据A列的文字,判断数据的行数'xu=2'Forzz=1Toxustudio'studio=zz+xu'Rows(1:1).Select'Selection.Copy'Rows(studio).Select'Selection.InsertShift:=xlDown'xu=xu+1'Next'Application.CutCopyMode=Falsexustudio=ActiveSheet.UsedRange.Rows.Count-2'根据使用的区域,判断数据的行数xu=2Forzz=1Toxustudiostudio=zz+xuIfActiveSheet.UsedRange.Rows.Count=ActiveSheet.Rows.CountThen'判断是否到表格底部MsgBox已到表格底部,无法添加表头!,,提示ExitSubElseApplication.ScreenUpdating=FalseActiveSheet.Rows(1:1).SelectSelection.CopyActiveSheet.Rows(studio).SelectSelection.InsertShift:=xlDownxu=xu+1Application.CutCopyMode=FalseEndIfNextEndSub(2)输入完成后,关闭VBA编辑窗口返回工作表状态,执行‘工具--宏--宏’中的‘添加打印工资表头’即可完成自动添加。打印完毕,如果需要删除刚刚添加的表头,恢复到原先样式可进行如下操作:(1)执行“工具→宏→VisualBasic编辑器”命令,进入“VisualBasic编辑”窗口。执行“插入→模块”命令,插入一个模块(如“模块2”),双击“模块2”在窗口右边展开“模块2(代码)”编辑窗口,输入如下代码:Sub删除多余工资表头()'========下面的代码适合Excel2000/Excel2003版================================'xuustudio=[A65536].End(xlUp).Row'根据A列的文字,判断数据的行数'Forxu=1Toxxstudio-2Step2'studio=xustudio-xu'Rows(studio).Select'Selection.DeleteShift:=xlUp'Nextxustudio=ActiveSheet.UsedRange.Rows.Count'根据使用的区域,判断数据的行数Forxu=xustudioTo2Step-1Application.ScreenUpdating=FalseIfCells(xu,1)=Cells(1,1)Then'与A1单元格进行比较ActiveSheet.Rows(xu).SelectSelection.DeleteShift:=xlUpEndIfNextEndSub(2)输入完成后,关闭VBA编辑窗口返回工作表状态,执行‘工具--宏--宏’中的‘删除多余工资表头’即可删除通过‘添加打印工资表头’生成的工资表头,只保留第一行的表头内容。当然,如果工作中经常需要使用上述两个宏,可以通过自定义工具栏的方式,将两个宏添加到工具栏中,来提高操作的速度。二、当工资表表头行数为两行时:(1)执行“工具→宏→VisualBasic编辑器”命令,进入“VisualBasic编辑”窗口。执行“插入→模块”命令,插入一个模块(如“模块1”),双击“模块1”在窗口右边展开“模块1(代码)”编辑窗口,输入如下代码:Sub添加打印工资表头()''描述:从第二行数据开始,给每一行添加第一行的数据表头'========下面的代码适合Excel2000/Excel2003版======='xustudio=[A65536].End(xlUp).Row-3'根据A列的文字,判断数据的行数'xu=2'Forzz=2Toxustudio'studio=zz+xu'Rows(2:2).Select'Selection.Copy'Rows(studio).Select'Selection.InsertShift:=xlDown'xu=xu+2'Next'Application.CutCopyMode=Falsexustudio=ActiveSheet.UsedRange.Rows.Count-2'根据使用的区域,判断数据的行数xu=2Forzz=2Toxustudiostudio=zz+xuIfActiveSheet.UsedRange.Rows.Count=ActiveSheet.Rows.CountThen'判断是否到表格底部MsgBox已到表格底部,无法添加表头!,,提示ExitSubElseApplication.ScreenUpdating=FalseActiveSheet.Rows(2:2).SelectSelection.CopyActiveSheet.Rows(studio).SelectSelection.InsertShift:=xlDownxu=xu+2Application.CutCopyMode=FalseEndIfNextEndSub(2)输入完成后,关闭VBA编辑窗口返回工作表状态,执行‘工具--宏--宏’中的‘添加打印工资表头’即可完成自动添加。打印完毕,如果需要删除刚刚添加的表头,恢复到原先样式可进行如下操作:(1)执行“工具→宏→VisualBasic编辑器”命令,进入“VisualBasic编辑”窗口。执行“插入→模块”命令,插入一个模块(如“模块2”),双击“模块2”在窗口右边展开“模块2(代码)”编辑窗口,输入如下代码:Sub删除多余工资表头()'========下面的代码适合Excel2000/Excel2003版================================'xuustudio=[A65536].End(xlUp).Row'根据A列的文字,判断数据的行数'Forxu=1Toxxstudio-2Step2'studio=xustudio-xu'Rows(studio).Select'Selection.DeleteShift:=xlUp'Nextxustudio=ActiveSheet.UsedRange.Rows.Count'根据使用的区域,判断数据的行数Forxu=xustudioTo2Step-1Application.ScreenUpdating=FalseIfCells(xu,1)=Cells(1,1)Then'与A1单元格进行比较ActiveSheet.Rows(xu).SelectSelection.DeleteShift:=xlUpEndIfNextEndSub(2)输入完成后,关闭VBA编辑窗口返回工作表状态,执行‘工具--宏--宏’中的‘删除多余工资表头’即可删除通过‘添加打印工资表头’生成的工资表头,只保留第一行的表头内容。当然,如果工作中经常需要使用上述两个宏,可以通过自定义工具栏的方式,将两个宏添加到工具栏中,来提高操作的速度。三、当工资表表头行数为三行时代码:Sub添加打印工资表头3行()''描述:从第二行数据开始,给每一行添加第一行的数据表头'========下面的代码适合Excel2000/Excel2003版======='xustudio=[A65536].End(xlUp).Row-4'根据A列的文字,判断数据的行数'xu=2'Forzz=3Toxustudio'studio=zz+xu'Rows(3:3).Select'Selection.Copy'Rows(studio).Select'Selection.InsertShift:=xlDown'xu=xu+3'Next'Application.CutCopyMode=Falsexustudio=ActiveSheet.UsedRange.Rows.Count-2'根据使用的区域,判断数据的行数xu=2Forzz=3Toxustudiostudio=zz+xuIfActiveSheet.UsedRange.Rows.Count=ActiveSheet.Rows.CountThen'判断是否到表格底部MsgBox已到表格底部,无法添加表头!,,提示ExitSubElseApplication.ScreenUpdating=FalseActiveSheet.Rows(3:3).SelectSelection.CopyActiveSheet.Rows(studio).SelectSelection.InsertShift:=xlDownxu=xu+3Application.CutCopyMode=FalseEndIfNextEndSub打印完毕,如果需要删除刚刚添加的表头,恢复到原先样式可进行如下操作:(1)执行“工具→宏→VisualBasic编辑器”命令,进入“VisualBasic编辑”窗口。执行“插入→模块”命令,插入一个模块(如“模块2”),双击“模块2”在窗口右边展开“模块2(代码)”编辑窗口,输入如下代码:Sub删除多余工资表头()'========下面的代码适合Excel2000/Excel2003版================================'xuustudio=[A65536].End(xlUp).Row'根据A列的文字,判断数据的行数'Forxu=1Toxxstudio-2Step2'studio=xustudio-xu'Rows(studio).Select'Selection.DeleteShift:=xlUp'Nextxustudio=ActiveSheet.UsedRange.Rows.Count'根据使用的区域,判断数据的行数Forxu=xustudioTo2Step-1Application.ScreenUpdating=FalseIfCells(xu,1)=Cells(1,1)Then'与A1单元格进行比较ActiveSheet.Rows(xu).SelectSelection.DeleteShift:=xlUpEndIfNextEndSub(2)输入完成后,关闭VBA编辑窗口返回工作表状态,执行‘工具--宏--宏’中的‘删除多余工资表头’即可删除通过‘添加打印工资表头’生成的工资表头,只保留第一行的表头内容。当然,如果工作中经常需要使用上述两个宏,可以通过自定义工具栏的方式,将两个宏添加到工具栏中,来提高操作的速度。