顶着有分!!!Excel 打印的问题
我下载有个sheet页 里面有个表头 中间有20行的数据行 下面有个表尾
但是我现在的数据量不知道有多少行 可能会大于20行 ,如果添加到行的话,这样的话打印的时候就会没法打印表尾了!!!如果不添加只填写20行,那多余的行不知怎么处理,再复制个sheet感觉不合理,因为数据行可能会很多。
请教高手这种问题怎么解决!!!
还请高手指点
[解决办法]
你要打印在一页纸上还是两页啊,没说清楚
[解决办法]
和你一起期望中...............................
[解决办法]
顶,接分!
[解决办法]
你打印的时候“fit to page" 可以吗?
[解决办法]
单纯从显示上说,Excel 也可以把所有内容缩到一个页面来看的呀,难道楼主从来没用过?
File->Page Setup-->Fit to,在这里你可以选择缩小的方式。
缺点就是当内容很多的时候,打印出来的字可能会很小。
[解决办法]
那你就编个宏命令,20行数据一个sheet,自动生成所有的sheet,然后再打印。
[解决办法]
把你要打印的报表设计成一个空的固定的报表,
再设计一个过程往里面写数据并打印就成了,
如:你写的过程从数据源里读数据,并写
入要打印的报表里,当满20行的时候就打印。
这样就成了。我都是这么干的。
[解决办法]
来,试试这个脚本,看行不行。
配置好默认打印机和纸张,根据中文注释修改相应的参数,然后把下面的代码保存为PrintXls.vbs,双击执行。
有问题请回复。
'********************'' PrintXls.vbs '' Lawrence Chen '' Updated: 7/27/2008 ''********************''************' Initialize'************'Defind the xls file to be printedstrXlsFile = "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 = TrueEnd Function