以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  尴尬的excel报表打印,寻求有经历的狐友高手解套  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=149889)

--  作者:czy66ds
--  发布时间:2020/5/14 16:02:00
--  尴尬的excel报表打印,寻求有经历的狐友高手解套
设计了一个excel报销单模板,在打印环节遇到困难。
使用的打印纸规格为241mm二等分,这样打印页面应设置为24*14.
虽然已经将默认打印机设置成24*14的规格,但是使用代码:
Dim Proc As New Process \'打开工作簿
Proc.File = fl
Proc.Verb = "Print" \'指定动作 直接打印
Proc.Start()
但是实际打印时,还是被Excel强行接管,excel顽固地使用A4规格打印。
就是说,代码Proc.Verb = "Print"不能直接使用默认打印机设置的页面规格去打印。

没办法只好打印每一单时去掉代码Proc.Verb = "Print"而采用预览打印的办法,每一单都要重新设置一下页面再打印。
这样打印工作效率太低,不被操作者待见,只能被吐槽。只能尴尬面对。

为了提高工作效率,原本是要对选择的文档连续打印的,更无望了。

至于采用代码进行页面设置
Dim Book As New XLS.Book
Dim
Sheet As XLS.Sheet = Book.Sheets(0)
With
Sheet.PrintSetting
    .PaperKind =
9 \'设为A4纸

这个打印纸241mm二等分为非国际标准,找不到纸张编号
狐表帮助提供的纸张编号与类型表找不到它的身影。

希望解决了此问题的高手能现身说法。
最后声明,我说的尴尬是我在用户面前尴尬。
[此贴子已经被作者于2020/5/14 16:07:41编辑过]

--  作者:有点蓝
--  发布时间:2020/5/14 16:33:00
--  
没有把这个新增加的纸张设置为这个默认打印机的默认纸张吧。


--  作者:bahamute
--  发布时间:2020/5/14 20:45:00
--  
自定义纸张,设置默认。
--  作者:czy66ds
--  发布时间:2020/5/14 21:35:00
--  
默认打印机的默认纸张都已经设置,但是不听话。感觉最后都被Excel接管。Excel的默认纸张坚定不移地是A4!
--  作者:czy66ds
--  发布时间:2020/5/14 21:42:00
--  
使用VBA的坎是:

\'设置页面
    .PaperSize = MSExcel.XlPaperSize.xlPaperA4   \'纸张大小

这个xlPaperA4 也没法针对24*14写出来。

--  作者:有点蓝
--  发布时间:2020/5/14 22:03:00
--  
不需要指定,会按照默认纸张使用的
--  作者:czy66ds
--  发布时间:2020/5/15 8:56:00
--  
你指导的连续打印代码在:
excel报表可以连续打印吗? - 专家坐堂 - Foxtable(狐表) - 新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!  http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=149753&authorid=0&page=0&star=2

能够帮助我加上VBA控制代码吗?

--  作者:有点蓝
--  发布时间:2020/5/15 9:05:00
--  
Dim Proc As New Process \'打开工作簿
Proc.File = fl
Proc.Verb = "Print" \'指定动作 直接打印
Proc.Start()
改为
   Dim App As New MSExcel.Application
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Ws.PrintOut
App.Quit

--  作者:czy66ds
--  发布时间:2020/5/15 11:01:00
--  

测试报告:
1、打印代码按照8楼修改了代码
2、设置了默认打印机和默认页面尺寸

图片点击可在新窗口打开查看此主题相关图片如下:snipaste_打印机1.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:snipaste打印机2.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:snipaste打印机3.png
图片点击可在新窗口打开查看
3、甚至Excel也进行了设置
4、运行结果:
没有按照24*14打印似乎还是按照A4打印的。

我觉得VBA代码中应该加入24*14的页面设置代码。可惜我对VBA是个彻底的菜鸟。





--  作者:有点蓝
--  发布时间:2020/5/15 11:09:00
--  
试试:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=54472&skin=0