Foxtable(狐表)用户栏目专家坐堂 → 打印完成后如何关掉Excel应用


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

主题:打印完成后如何关掉Excel应用

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


加好友 发短信
等级:三尾狐 帖子:651 积分:6614 威望:0 精华:0 注册:2016/12/27 21:05:00
打印完成后如何关掉Excel应用  发帖心情 Post By:2023/7/10 19:25:00 [只看该作者]

我在“录入窗体”上增加了一个打印按钮,该按钮的功能是打印Excel报表;
我遇到的问题是:每次打印后需要手工关掉excel(打印Word报表时也一样);
我想请教的是---可否通过代码实现打印完成后自动关掉Excel,直接回到“录入窗体”的界面?
请指教,谢谢!

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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/10 20:38:00 [只看该作者]

使用vba打印:http://www.foxtable.com/webhelp/topics/2121.htm

比如:
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("c:\123.doc")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
wb.saved = True
App.DisplayAlerts = False
App.Visible = False
Ws.PrintOut(Preview:=False) '直接打印;
Wb.Close
App.Quit

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


加好友 发短信
等级:三尾狐 帖子:651 积分:6614 威望:0 精华:0 注册:2016/12/27 21:05:00
  发帖心情 Post By:2023/7/11 10:02:00 [只看该作者]

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("ProjectPath & 'Attachments\预算申请单模板.xls'")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Wb.Build()
Wb.saved = True
App.DisplayAlerts = False
App.Visible = False
Ws.PrintOut(Preview:=False) 
Wb.Close
App.Quit
利用上述代码能够实现打印,但在关闭EXCEL前还有提示:是否对工作簿的保存?只有选择后才能关闭,这样才能关闭此对话框?

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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/11 10:10:00 [只看该作者]

这种代码能够执行?!!Build是XLS.Book的功能,不是vba的。XLS.Book和vba的MSExcel.Application是两种完全不一样的功能,不要乱套。如果要先生成模板,参考

Dim Book As New XLS.Book(ProjectPath & "Attachments\出库单.xls")
Dim
 fl As String = ProjectPath & "Reports\出库单.xls"
Book
.Build() '生成细节区
Book
.Sheets(0).Rows.RemoveAt(0'删除第一行,Excel报表的第一行通常是标记行
Book
.Save(fl) '保存工作簿

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
wb.saved = True
App.DisplayAlerts = False
App.Visible = False
Ws.PrintOut(Preview:=False) '直接打印;
Wb.Close
App.Quit

 回到顶部