2017-10-20 360 views
0

嗨我正在尝试打印出用户窗体。打印时始终提示保存用户窗体(正在显示提示框)。我不想要它。将打印方法从PDF更改为默认打印机以打印表格

我想在不保存的情况下选择打印机后直接打印输出。下面

代码:

Private Sub CommandButton2_Click() 
    CommandButton2.Visible = False 
    CommandButton1.Visible = False 

    Application.Dialogs(xlDialogPrinterSetup).Show 
    Me.PrintForm 

    CommandButton2.Visible = True 
    CommandButton1.Visible = True 
End Sub 
+1

你有没有在PrintForm行之前试过Application.DisplayAlerts = False? –

+0

Hi.No。即使添加这不是帮助 – umakant

回答

0

在你的代码的末尾,你可以强制一个工作簿关闭不保存任何更改,在工作簿的Visual Basic模块中键入下面的代码:

Sub Auto_Close() 
    ThisWorkbook.Saved = True 
End Sub 

因为Saved属性设置为True,所以Excel会作出响应,就像工作簿已保存并且自上次保存以来没有发生任何更改。

编辑:

现在我知道你在做什么,我要相信你已经创建了一个按钮,按下你的表格后,所以我认为像https://www.mrexcel.com/forum/excel-questions/544657-specifying-printer-printing-userform-using-vba.html。这将帮助你满足你的需求,因为它会告诉你如何改变默认的打印方法,形成PDF。

+0

嗨,谢谢你的回应。我想打印userform而不是excel sheet.Its我想打印文档而不保存它。是否有可能?每当它要求打印文档而不保存时 – umakant

+0

这是excel工作簿中的用户表单吗?如果是,那么这将做什么是允许你关闭工作簿而不保存,因为你可以调暗工作簿和wb.close – Kyoujin

+0

是的,用户窗体是在Excel工作簿。并且我需要打印输出的用户窗体不是Excel表单。 – umakant

1

您可能不喜欢此答案,因为它涉及更多工作,但您可能希望用户窗体将数据添加到格式化的工作表中,然后使用工作表的打印输出方法。

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/sheets-printout-method-excel

Worksheets.("yourWorksheet").printout _ 
activeprinter:= yourPDFprinter, _ 
PrintTofFile:= True, _ 
PrToFileName:= filePathAndName 

如果你想通过窗体做到这一点,你很可能会最终作出了一堆的Windows API调用。