问题描述
是否可以使用 ThisWorkbook.Application.Visible = False
获得相同的效果,但仅适用于一个工作簿。我的意思是,我想将用户交互仅限于 UserForm,但我需要访问其他工作簿。目前此功能会导致隐藏工作簿,但在打开另一个 excel 文件后 - 用户表单中的所有对象均不可用。
Private Sub Workbook_open()
ThisWorkbook.Application.Visible = False
Starter.Show modeless
End Sub
感谢您的支持。
解决方法
请创建一个表单,让我们说“Starter”,具有(至少)一个按钮(“btExit”),复制其代码模块中的下一个代码并显示它。如果讨论中的表单在 Initialize
和 Terminate
事件中已经有一些代码,请也添加以下代码行:
Option Explicit
Private Sub btExit_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
ThisWorkbook.Windows(1).Visible = False
End Sub
Private Sub UserForm_Terminate()
ThisWorkbook.Windows(1).Visible = True
End Sub
因此,您可以通过这种方式简单地使用工作簿 Open
事件:
Private Sub Workbook_Open()
Starter.Show vbModeless
End Sub