【发布时间】:2017-03-12 02:50:33
【问题描述】:
我有一个用户表单,填写后,底部有一个命令按钮。单击按钮时,它将数据复制到工作表2,然后将行信息复制到工作表4,这是一个表单,关闭用户表单。打开欢迎用户表单,然后我希望它打印工作表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
【问题讨论】:
-
删除
Unload Me。之后的任何事情都无法实现。另外...您不能在Sub中包含Function。您显示的代码甚至不会编译,更不用说运行了。 -
Unload Me 的说法不正确。其他几个领域有许多代码行,之后可以正常工作。如果我可以在 sub 中有一个函数,我将如何编辑它以使我想要完成的工作?
-
Unload Me卸载当前实例。您正在使用它,就好像它是Me.Hide,但不仅如此,而且您正在滥用它。我的代码可以编译,你的不行。接受你得到的建议。此外,您不应该使用默认的表单实例,它会在一天或一天之后咬到您。 -
仅仅因为您设法让卸载实例在代码中的其他地方“工作”并不意味着这是一个好主意。想一想你在那里做什么。你告诉运行时它应该卸载对象然后有更多的代码。使用这样的表单的默认实例可以创建各种狡猾的行为。像对待任何其他类一样对待它们——使用对对象实例的硬引用。如果你在
Terminate处理程序中加入一些Debug.Print语句,我猜你会对卸载顺序感到惊讶...... -
OP,
Unload Me是您应该在表单中执行的最后一行正常代码(某些表单具有在例如卸载表单时调用的过程;但您的显然没有)。Unload Me不是“这里有一周的通知”,它相当于把你的东西收拾好,然后被带出办公室。在下面的回答中,我只是调整了您的代码,以便它或多或少地工作。我没有神奇地将它转换成好的代码。