我有一个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
答案 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