图1是一份普通的Excel数据表,我们现在需要将其打印成如图2所示的样式,如果采取手工复制、粘贴的做法,不仅操作麻烦,而且容易出现错误。为此,笔者在此给出一种较为简便的解决方法,供大家参考。
处理过程:
1、启动Excel2003(其他版本请大家仿照操作),打开数据表。
2、切换到Sheet2工作表中,仿照图2所示的样式,制作好需要打印的表格表头的表尾。
3、选中A4单元格,输入公式:=A3+1,并用“填充柄”将其公式复制到A5至A22单元格中(此处假定每页打印20行数据)。
4、分别选中B3至H3单元格,依次输入公式:=IF(ISERROR(VLOOKUP($A3,数据!A:H,2,FALSE)),"",VLOOKUP($A3,数据!A:H,2,FALSE))、=IF(ISERROR(VLOOKUP($A3, 数据!A:H,3,FALSE)),"",VLOOKUP($A3,数据!A:H,3,FALSE))……=IF(ISERROR(VLOOKUP($A3,数据!A:H,8,FALSE)),"",VLOOKUP($A3,数据!A:H,8,FALSE))。
5、同时选中B3—H3单元格区域,用“填充柄”将上述公式复制到B4至H22单元格中。
6、分别选中E23和F23单元格,输入公式:=SUM(E3:E22)和=SUM(F3:F22),用于统计当页工程的“建筑面积”和“造价”,达到分页汇总的目的。
7、执行“工具→宏→Visual Basic编辑器”命令,进入VBA编辑状态(如图3)。
注意:按下“Alt+F11”组合键,也可以快速进入VBA编辑状态。
8、选中“工程.xls”工作簿名称,执行“插入→模块”命令,插入一个新模块(模块1),然后将下述代码输入到右侧的空白区域中:
Sub 分页打印()
x = InputBox("请输入打印起始页码") '设置打印起始页码
y = InputBox("请输入打印结束页码") '设置打印结束页码
For i = x To y '设置一个循环
Cells(3, 1) = 20 * (i - 1) + 1 '在A3单元格中输入一个序号
ActiveWindow.SelectedSheets.PrintOut '执行一次打印操作
Next '进入下一个循环
End Sub
注意:在上述代码中,英文单引号“'”及后面的字符是对代码的解释,在实际输入的时候不需要输入。
9、输入完成后,关闭VBA编辑窗口,返回工作表中。
10、执行“视图→工具栏→控件工具箱”命令,展开“控件工具箱”工具条(如图4)。
11、单击工具条上的“命令按钮”按钮,然后在工作表中拖拉一下,画出一个命令按钮。
12、右击命令按钮,在随后出现的快捷菜单中,选择“属性”选项,打开“命令按钮属性”设置框(如图5)。
13、切换到“按分类序”标签下,展开“外观”选项,将“Caption”选项右侧的字符修改为“分页打印”,给按钮命名;再展开“杂项”选项,将“PrintObject”选项设置为“False”。
注意:将“PrintObject”选项设置为“False”,则后面打印时,该按钮不被打印出来。如果设置成了“True”,则按钮会打印在纸张上,影响表格的打印效果。
14、双击上述命令按钮,再次进入VBA编辑状态,将“分页打印”(上述代码中的宏名称)字符输入到已经出现的两行代码之间,成如下状况:
Private Sub CommandButton1_Click()
分页打印
End Sub
15、关闭VBA编辑状态,返回工作表中。
16、象调整普通图片大小一样,调整好命令按钮的大小,关将其定位在表格的合适位置上,单击工具栏上的“退出设计模式”按钮。
17、以后需要分页打印时,单击“分页打印”命令按钮,系统先后弹出类似如图6所示的两个提示框,输入需要打印的起、始页号(参见图6)。
按下“确定”按钮,不一会儿,一份份分页汇总打印的表格就呈现在我们的面前了(参见图2)。
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交