当用户点击按钮时,我以编程方式在我的VBA应用程序中创建一个新的Excel工作表。我想允许用户编写这个新创建的工作表,并保持同时显示创建新工作表的用户形式。
编辑:附加精度:我使用一系列用户表单,第一个是身份验证表单,第二个是功能选择菜单,我在问题中提到的那个提供了其中一个功能。因此,我的问题的正确解决方案是将所有这些用户表单显示为非模态。
答案 0 :(得分:2)
将userform显示为非模态:
Userform1.Show False '//<-- Allows user interaction whilst form is active.
的警告:强>
将表单显示为非模态将允许在显示表单后继续执行代码 - 这可能会导致意外行为,应在设计时考虑。例如:
Sub ModalExample()
UserForm1.Show '// Show modal, code will pause here until form is closed.
MsgBox "Userform has now been closed."
UserForm1.Show False '// Show non-modal, code will continue to execute regardless.
MsgBox "Userform is still open."
End Sub
答案 1 :(得分:-1)
我很确定如果用户表单处于活动状态,那么它将不允许您在工作表关闭之前访问它。
虽然有很多方法可以解决这个问题。隐藏userform直到再次需要它。将其设置为键盘快捷键或其他内容以再次显示它。因此,userform.hide
会在功能区中显示另一个宏或按钮,以便使用userform.show
再次显示用户表单
而不是创建新工作表。使用新工作簿创建Excel的新实例。这将允许userform在一个Excel实例中保持打开状态,然后用户可以在另一个Excel实例中写入另一个工作簿
要创建新的Excel实例,您需要使用代码
Dim objExcel As Excel.Application
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Add
objExcel.Visible = True
这将创建一个新的Excel实例,并且仍然在另一个Excel实例中具有userform