Foxtable(狐表)用户栏目专家坐堂 → [求助]VBA无法设置横着打印?


  共有2889人关注过本帖树形打印复制链接

主题:[求助]VBA无法设置横着打印?

帅哥哟,离线,有人找我吗?
新福星
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
[求助]VBA无法设置横着打印?  发帖心情 Post By:2018/4/22 10:08:00 [显示全部帖子]

按照帮助文件中的Excel与VBA章节中的打印输出来设置程序。

思路打开一个Excel文件后,由程序设置页面打印后关闭这个文件后再接着打开下一个Excel文件,循环往复打印。

问题1 Excel文件原来的页面设置和程序页面设置是什么关系?
问题2  .Orientation = MSExcel.xlPageOrientation.xlLandscape '横向打印 这条语句怎么无效呢?怎么设置都是竖着打印呢?
要求是页面为A5纸,然后连续打印。 怎么解决?谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By: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时,就超界了打出的内容大小是合适的,但是变为两张了,超宽了!
怎么设置这些参数?谢谢老师!


 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2018/4/23 18:43:00 [显示全部帖子]

很奇怪明明是A5的纸,在程序中将这条语句 “ .PaperSize = MSExcel.XlPaperSize.xlPaperA4   '纸张大小 ”  设置为A4打的就正常了!怎么会这样

 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2018/4/23 20:33:00 [显示全部帖子]

现在定义用的是A4纸.实际用纸是A5纸.连续打印时,按A4换页. 这样打印出来的是隔一张打印一张:(

 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2018/4/23 21:00:00 [显示全部帖子]

打印区域经验证正好是整个有内容的区域,这也是最小区域了.

自定义打印尺寸怎么操作?

 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2018/4/23 21:01:00 [显示全部帖子]

现在又改回到A5了,现象就是打的特别小,缩小了1/2 .怎么能放大一倍呢?

 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2018/4/24 5:24:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:打印演示.rar


 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2018/4/24 9:48:00 [显示全部帖子]

单独打开Excel文件打印没有问题。用我给的程序打印,在A5纸打印就被缩小了,不足A5界面一半。不管是否设置横向还是竖着都不对!

 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2018/4/24 10:19:00 [显示全部帖子]

11楼形成的Excel文件,模板设置的是A5横打,直接打开浏览都是正常的。现在想批量连续打印,用程序打印,设置A5纸,横打超界,竖打就缩小了。

 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2018/4/24 10:29:00 [显示全部帖子]

A5纸是A4的一半。原来我也以为是横打,但实际不是横打。尽管A5的纸变成横的长方形,但进纸方向没有变,不应该是横打。在我公司打印机和客户的打印机都出现了同样的问题,不应该是打印机设置问题!

 回到顶部
总数 14 1 2 下一页