以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]VBA无法设置横着打印? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=117970) |
-- 作者:新福星 -- 发布时间:2018/4/22 10:08:00 -- [求助]VBA无法设置横着打印? 按照帮助文件中的Excel与VBA章节中的打印输出来设置程序。 思路打开一个Excel文件后,由程序设置页面打印后关闭这个文件后再接着打开下一个Excel文件,循环往复打印。 问题1 Excel文件原来的页面设置和程序页面设置是什么关系? 问题2 .Orientation = MSExcel.xlPageOrientation.xlLandscape \'横向打印 这条语句怎么无效呢?怎么设置都是竖着打印呢? 要求是页面为A5纸,然后连续打印。 怎么解决?谢谢
|
-- 作者:有点甜 -- 发布时间:2018/4/22 22:37:00 -- 打印预览是否正常?请上传实例,或者贴出具体代码测试。 |
-- 作者:新福星 -- 发布时间:2018/4/23 17:02:00 -- For Each s As Row In Tables(bm5).GetCheckedRows 报表名称=s("出入库单") & "出入库单" File_name=报表目录 & 报表名称 & ".xls" If FileSys.FileExists(File_Name)=False Then Continue For Wb = App.WorkBooks.Open(File_Name) ws= Wb.WorkSheets("出入库单") With Ws.PageSetup \'设置打印区域 \' .PrintArea = ws.UsedRange \' "A1:H10" \'打印工作表的指定区域 .PrintArea = Ws.UsedRange.Address \'打印工作表的使用区域 \' .PrintTitleColumns = Ws.Columns("A:H").Address \'打印列标题(在每一页的左边重复出现) \' .PrintTitleRows = Ws.Rows(1).Address \'打印行标题(在每一页的顶部重复出现) \'设置页面 .PaperSize = MSExcel.XlPaperSize.xlPaperA5 \'纸张大小 .LeftMargin = 10 \'页面左边距 \' .RightMargin = 1\'页面右边距 .TopMargin = 20 \'页面顶部边距 \' .BottomMargin = 1 \'页面底部边距 \' .HeaderMargin = 10 \'页面顶端到页眉的距离 \' .FooterMargin = 10 \'页脚到页面底端的距离 \' .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.5 \'按照1页的宽度打印 \' .FitToPagesTall = 1 \'按照1页的高度打印 End With \' Ws.Rows(16).PageBreak = MSExcel.XlPageBreak.xlPageBreakManual App.Visible = True \' Ws.PrintPreview Ws.PrintOut wb.save wb.close App.Quit Next 代码如上,之前已经形成了若干个Excel文件,每一个Excel文件为独立的一张入(出)库单,需要实现连续打印的功能. 按照上述参数设置是可以连续打印的,但是打印的内容过小;缩放打印那里.FitToPagesWide = 1.5时,没有任何反映,打出来的内容很小;.FitToPagesWide = 2设置2时,就超界了打出的内容大小是合适的,但是变为两张了,超宽了! 怎么设置这些参数?谢谢老师! |
-- 作者:新福星 -- 发布时间:2018/4/23 18:43:00 -- 很奇怪明明是A5的纸,在程序中将这条语句 “ .PaperSize = MSExcel.XlPaperSize.xlPaperA4 \'纸张大小 ” 设置为A4打的就正常了!怎么会这样 |
-- 作者:有点甜 -- 发布时间:2018/4/23 19:09:00 -- 你打印机那里,没有A5纸张吧? |
-- 作者:新福星 -- 发布时间:2018/4/23 20:33:00 -- 现在定义用的是A4纸.实际用纸是A5纸.连续打印时,按A4换页. 这样打印出来的是隔一张打印一张:( |
-- 作者:有点蓝 -- 发布时间:2018/4/23 20:37:00 -- 应该是打印的内容超出了A5的可打印范围。 1、把打印内容设置小一点测试 2、自己自定义打印尺寸试试
|
-- 作者:新福星 -- 发布时间:2018/4/23 21:00:00 -- 打印区域经验证正好是整个有内容的区域,这也是最小区域了. 自定义打印尺寸怎么操作?
|
-- 作者:新福星 -- 发布时间:2018/4/23 21:01:00 -- 现在又改回到A5了,现象就是打的特别小,缩小了1/2 .怎么能放大一倍呢? |
-- 作者:有点蓝 -- 发布时间:2018/4/23 21:02:00 -- 做一个可以测试的例子看看 |