-- 作者:有点甜
-- 发布时间:2018/6/13 14:37:00
--
Dim App As New MSExcel.Application Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\Report.xls") Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) With Ws.PageSetup \'设置打印区域 .PrintArea = "A1:H10" \'打印工作表的指定区域 .PrintArea = Ws.UsedRange.Address \'打印工作表的使用区域 .PrintTitleColumns = Ws.Columns("A:H").Address \'打印列标题(在每一页的左边重复出现) .PrintTitleRows = Ws.Rows(1).Address \'打印行标题(在每一页的顶部重复出现) \'设置页面 .PaperSize = MSExcel.XlPaperSize.xlPaperA4 \'纸张大小 .LeftMargin = 30 \'页面左边距 .RightMargin = 30\'页面右边距 .TopMargin = 50 \'页面顶部边距 .BottomMargin = 50 \'页面底部边距 .HeaderMargin = 40 \'页面顶端到页眉的距离 .FooterMargin = 40 \'页脚到页面底端的距离 .CenterHorizontally = True \'页面水平居中 .CenterVertically = True \'页面垂直居中 \'设置页眉 .LeftHeader = "打印日期: &D" \'左页眉,&D表示日期 .CenterHeader = "&""隶书,常规""&20 数据分析表" \'中页眉,并将字体设置为隶书和20号字大小 .RightHeader = "打印者: " & App.UserName \'右页眉 \'设置页脚 .LeftFooter = "文件: &F &A" \'左页脚,&F表示文件名,&A表示工作表名 .CenterFooter = "" \'中页脚为空 .RightFooter = "第 &P 页 共 &N 页" \'右页脚 \'打印模式 .Orientation = MSExcel.xlPageOrientation.xlPortrait \'纵向打印 .Orientation = MSExcel.xlPageOrientation.xlLandscape \'横向打印 .PrintHeadings = True\'打印行号和列标 .PrintGridlines = True \'打印网格线 \'缩放打印 .Zoom = False\'以下设置将缩印在一页内 .FitToPagesWide = 1 \'按照1页的宽度打印 .FitToPagesTall = 1 \'按照1页的高度打印 End With App.Visible = True Ws.PrintPreview App.Quit
补充说明,Zoom是用于设置打印工作表时的缩放比例,数值在10和400之间。如果本属性设为False,则由FitToPagesWide属性和FitToPagesTall属性的设定值对工作表的缩放进行控制。
预览和打印
- PrintPreview
打印预览。执行该方法时,如果将参数设为False,则不允许在预览时进行打印设置。
如:Ws.PrintPreview(False)
注意,在执行打印预览时,必须先将Application的Visible设置为True!
- PrintOut
直接打印。如,Ws.PrintOut
该方法还可通过设置有关参数来控制打印,如下面的代码就是打印第1-10页,打印份数为3,打印前先预览,指定的打印机为"pdfFactory Pro":
Ws.PrintOut(From:=1,To:=10,Copies:=3,Preview:=True,ActivePrinter:="pdfFactory Pro")
|