VBA使用用户表单打印到打印机

时间:2017-03-12 02:50:34

标签: excel vba excel-vba printing

我有一个userform,填写完成后,底部有一个命令按钮。单击该按钮时,它将数据复制到工作表2,然后将行信息复制到工作表4,这是一个表单,关闭userform.and打开欢迎用户窗体,然后我希望它打印工作表4.

这是我的代码。打印功能无效。

Private Sub SavePrintButton_Click()

EditAdd

Sheet4.Activate
Dim myValue As Variant
myValue = TextBox1.Value
Range("b2").Value = myValue

Unload Me

Function PrintOneSheet()
      Sheets("Sheet4").PrintOut 
End Function

WelcomeUserForm.Show



End Sub

2 个答案:

答案 0 :(得分:1)

您的" PrintOneSheet"函数嵌入在SavePrintButton_Click中。移动"结束子"在"卸载我"并插入"调用PrintOneSheet"以上"卸载我"。我已经冒昧地添加了一个" Me.Hide"因为您显然希望当前表单在显示WelcomeUserForm之前消失。一旦不需要它仍然会被卸载。同时,如果出于任何原因你想回到它来纠正某些事情,你可以通过再次显示它来做到这一点。

Private Sub SavePrintButton_Click()
    Dim myValue As Variant

    EditAdd

    Sheet4.Activate
    myValue = TextBox1.Value
    Sheet4.Range("b2").Value = myValue

    Call PrintOneSheet
    Me.Hide
    WelcomeUserForm.Show
    Unload Me
End Sub

Function PrintOneSheet()
    Sheets("Sheet4").PrintOut
End Function

另一方面,Sheet4总是被称为" Sheet4"? Sheet4是对象id的直接调用," Sheet4"是对其中一个属性(名称)的调用。你应该在引用中保持一致,或者有一天你会改变一些显然是轻微的东西,而且混乱就会破裂。

答案 1 :(得分:0)

我已经重新编写了一些代码。这看起来更像是应该吗?我在我的vba中摆脱了所有unload.me。

Private Sub SavePrintButton_Click()

EditAdd

Sheet6.Activate
Dim myValue As Variant
myValue = TextBox1.Value
Range("b2").Value = myValue

ClearForm
Me.Hide

Sheet6.PrintOut

WelcomeUserForm.Show

MsgBox "New Run Added"

MsgBox "Run Sent to Printer"

End Sub