顶着有分!Excel 打印的有关问题

顶着有分!!!Excel 打印的问题
我下载有个sheet页 里面有个表头 中间有20行的数据行 下面有个表尾


但是我现在的数据量不知道有多少行 可能会大于20行 ,如果添加到行的话,这样的话打印的时候就会没法打印表尾了!!!如果不添加只填写20行,那多余的行不知怎么处理,再复制个sheet感觉不合理,因为数据行可能会很多。



 请教高手这种问题怎么解决!!!


还请高手指点

------解决方案--------------------
你要打印在一页纸上还是两页啊,没说清楚
------解决方案--------------------
和你一起期望中...............................
------解决方案--------------------
顶,接分!
------解决方案--------------------
你打印的时候“fit to page" 可以吗?
------解决方案--------------------
单纯从显示上说,Excel 也可以把所有内容缩到一个页面来看的呀,难道楼主从来没用过?
File->Page Setup-->Fit to,在这里你可以选择缩小的方式。
缺点就是当内容很多的时候,打印出来的字可能会很小。
------解决方案--------------------
那你就编个宏命令,20行数据一个sheet,自动生成所有的sheet,然后再打印。
------解决方案--------------------
把你要打印的报表设计成一个空的固定的报表,
再设计一个过程往里面写数据并打印就成了,
如:你写的过程从数据源里读数据,并写
入要打印的报表里,当满20行的时候就打印。
这样就成了。我都是这么干的。

------解决方案--------------------
来,试试这个脚本,看行不行。
配置好默认打印机和纸张,根据中文注释修改相应的参数,然后把下面的代码保存为PrintXls.vbs,双击执行。
有问题请回复。
VBScript code
'********************'
'    PrintXls.vbs    '
'   Lawrence Chen    '
' Updated: 7/27/2008 '
'********************'

'************
' Initialize
'************
'Defind the xls file to be printed
strXlsFile = "C:\Documents and Settings\Lawrence\Desktop\Book1.xls" '需要打印的xls文件
strSheet1 = "Sheet1" '包含表头和表尾的工作表
strSheet2 = "Sheet2" '包含数据的工作表
intDataRows = 20 '每次从数据表中提取的行数

'**************
' Main Process
'**************
PrintXls strXlsFile

'*********************
' Function PrintXls
'*********************
Function PrintXls(strXlsfile)
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If Not objFSO.FileExists(strXlsfile) Then
        WScript.Echo "File doesn't exist. Exiting..."
        PrintXls = False
    End If
    WScript.Echo "Printing " & Chr(34) & strXlsfile & Chr(34) & "..."
    Set objExcel = CreateObject("Excel.Application")
    objExcel.Visible = True
    objExcel.DisplayAlerts = False
    Set objWorkbook = objExcel.Workbooks.Open(strXlsfile)
    Set objWorksheet1 = objWorkbook.Worksheets.Item(strSheet1)
    Set objWorksheet2 = objWorkbook.Worksheets.Item(strSheet2)
    objWorksheet1.Select
    objExcel.Range("A1").Select
    Set objRange1 = objExcel.ActiveCell.CurrentRegion
    Set objRange1 = objRange1.Resize(intDataRows + 2, objRange1.Columns.Count)
    objWorksheet2.Select
    objExcel.Range("A1").Select
    Set objRange2 = objExcel.ActiveCell.CurrentRegion
    For i = 1 To objRange2.Rows.Count Step intDataRows
        Set objRange3 = objExcel.Range("A" & i)
        Set objRange3 = objRange3.Resize(intDataRows, objRange1.Columns.Count)
        objRange3.Copy(objWorksheet1.Range("A2"))
        objRange1.PrintOut
    Next
    WScript.Echo "Finished printing " & Chr(34) & strXlsFile & Chr(34) & "."
    objExcel.Quit
    PrintXls = True
End Function