以文本方式查看主题

-  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=187340)

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

--  作者:有点蓝
--  发布时间: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
--  发布时间: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前还有提示:是否对工作簿的保存?只有选择后才能关闭,这样才能关闭此对话框?

--  作者:有点蓝
--  发布时间: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