Foxtable(狐表)用户栏目专家坐堂 → 尴尬的excel报表打印,寻求有经历的狐友高手解套


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

主题:尴尬的excel报表打印,寻求有经历的狐友高手解套

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


加好友 发短信
等级:七尾狐 帖子:1684 积分:16374 威望:0 精华:0 注册:2013/7/31 13:03:00
尴尬的excel报表打印,寻求有经历的狐友高手解套  发帖心情 Post By:2020/5/14 16:02:00 [只看该作者]

设计了一个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编辑过]

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


加好友 发短信
等级:超级版主 帖子:106430 积分:541297 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/14 16:33:00 [只看该作者]

没有把这个新增加的纸张设置为这个默认打印机的默认纸张吧。


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


加好友 发短信
等级:六尾狐 帖子:1421 积分:11294 威望:0 精华:0 注册:2008/9/1 22:20:00
  发帖心情 Post By:2020/5/14 20:45:00 [只看该作者]

自定义纸张,设置默认。

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


加好友 发短信
等级:七尾狐 帖子:1684 积分:16374 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By:2020/5/14 21:35:00 [只看该作者]

默认打印机的默认纸张都已经设置,但是不听话。感觉最后都被Excel接管。Excel的默认纸张坚定不移地是A4!

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


加好友 发短信
等级:七尾狐 帖子:1684 积分:16374 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By:2020/5/14 21:42:00 [只看该作者]

使用VBA的坎是:

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

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

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


加好友 发短信
等级:超级版主 帖子:106430 积分:541297 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/14 22:03:00 [只看该作者]

不需要指定,会按照默认纸张使用的

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


加好友 发短信
等级:七尾狐 帖子:1684 积分:16374 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By: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控制代码吗?

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


加好友 发短信
等级:超级版主 帖子:106430 积分:541297 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1684 积分:16374 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By: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是个彻底的菜鸟。





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


加好友 发短信
等级:超级版主 帖子:106430 积分:541297 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/15 11:09:00 [只看该作者]

试试:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=54472&skin=0

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