将打印方法从PDF更改为默认打印机以进行表单打印输出

时间:2017-10-20 06:50:28

标签: vba excel-vba excel

您好我正在尝试从用户表单中获取打印件。打印时始终提示保存用户窗体(正在显示提示框)。我不想要它。

我想在选择打印机后直接打印输出而不保存。

以下代码:

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

    Application.Dialogs(xlDialogPrinterSetup).Show
    Me.PrintForm

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

2 个答案:

答案 0 :(得分:1)

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

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

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

如果你想通过UserForm来做,你可能最终会进行一堆Windows API调用。

答案 1 :(得分: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。