首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VBA >

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

2012-03-31 
顶着有分!!!Excel 打印的问题我下载有个sheet页里面有个表头中间有20行的数据行 下面有个表尾但是我现在的

顶着有分!!!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 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 

热点排行