EXCEL中续页表头的自动处理(计算机编程技巧与维护2002.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:5 大小:49KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

EXCEL中续页表头的自动处理(计算机编程技巧与维护2002.doc

EXCEL中续页表头的自动处理(计算机编程技巧与维护2002.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

电子表格打印时续页表头的自动处理《计算机编程技巧与维护》2002年第1期发表曹骞江苏省东台市环境监测站(江苏东台224200)摘要:实现了电子表格打印时,续页表头的自动添加与删除。关键词:电子表格打印续页表头Excel是我们非常熟悉的电子表格软件,使用Excel打印表格时,经常会遇到这样的情况:要打印一张在Excel中编辑的表格,但表格内容有多页,由打印预览可以看出,打印出的表格首页中包含表头和数据,而续页上没有表头,只有数据。看起来不舒服,查阅数据时也不方便。通常解决的方法是:打印前,手工把表头依次拷贝到续页的首行前面。但若某页需要插入或删除数行时,则要将其后各页的表头位置一一更改;要重新对表格中的数据进行统计处理时,也要先将表头一一删除后才能进行。当表格内容较多,有数十页乃至上百页时,这种手工操作的工作量将会很大。为解决这一问题,笔者利用Excel97中的VBA,设计了一个小程序,实现了Excel97续页表头的自动插入、自动删除,从而减轻了工作量、提高了工作效率。基本工作原理电子表格中,设i行前存在分页符。当分页符为自动分页符时rows(i).PageBreak=-4105;当分页符为人工插入的分页符时rows(i).PageBreak=-4135。“PageBreak”属性为分页符的位置。续页表头的自动插入:首先将表头拷贝至剪贴板中,从首行起依次查找分页符,发现分页符时,插入与表头相等的空行,将表头粘贴至空行中。续页表头的自动删除:首先输入表头的行数x,从尾行起向首行依次查找分页符,发现分页符时,将自分页符起的x行删除。需要说明的是:当为人工分页符时,插入表头前需要先删除分页符,粘贴后再在表头前插入人工分页符;同理删除表头后也要插入一个分页符,以保持原有格式不变。程序实现本程序在windows98、Excel97中编写并通过。运行程序表单的步骤:在Excel中新建宏,宏代码为:UserForm2.show,运行宏;还可在Excel工具栏中新建一个自定义按钮,将其连接到该宏,运行时只需单击此按钮即可。2.1表单界面(UserForm2):关键控件如下表:UserForm2用户窗体RefEdit1表头区域获取框TextBox1标题行数输入框CommandButton1“开始添加”按钮CommandButton2“清除表头”按钮CommandButton3“退出”按钮2.1程序:PrivateSubCommandButton1_Click()'统计最后一行的行号,rowcount为最后一行行号Dimuserrow(4)AsInteger'为符号“$”所在的位置DimsAsIntegerb=Me.RefEdit1.Texta=Len(Me.RefEdit1.Text)j=0s=0h=0'判别是否存在“:”Fori=1ToaIfLeft(Right(b,i),1)<>"$"Then'不为“$”时,继续判别j=j+1Else'为“$”时,在userrow(s)数组中记录下“$”的位置j=j+1userrow(s)=js=s+1EndIfIfLeft(Right(b,i),1)=":"Thenh=1EndIfNextiIfh=1Then'如果选定区域超过一个单元格Ifs=2Thenrow_1=Left(Right(b,userrow(1)-1),userrow(1)-userrow(0)-2)ElseIfs=4Thenrow_1=Left(Right(b,userrow(2)-1),userrow(2)-userrow(1)-2)EndIfEndIfrow_2=Right(b,userrow(0)-1)Me.TextBox1.Text=Str(row_2-row_1+1)+"行"titlerow=row_2-row_1+1Else'仅选定一个单元格Me.TextBox1.Text=Str(1)+"行"titlerow=1EndIf'将所选区域复制到剪贴板Range(Me.RefEdit1.Text).SelectSelection.Copy'计算总行数Range("A1").SelectActiveCell.SpecialCells(xlLastCell).Selectrowcount=ActiveCell.Row'计算现有的总页数,并将总页数置于pagecount变量中pagecount=0Fori=1TorowcountIfrows(i).PageBreak=-4105Orrows(i).PageBreak=-4135Thenpagecount=page