首页 > 解决方案 > 限制用户与工作簿的交互 - 隐藏工作簿/仅显示用户窗体

问题描述

是否可以使用ThisWorkbook.Application.Visible = False但仅用于一个工作簿来获得相同的效果。我的意思是,我只想将用户交互限制为 UserForm,但我需要访问其他工作簿。目前此功能会导致隐藏工作簿,但在打开另一个 excel 文件后 - 用户窗体中的所有对象都不可用。

Private Sub Workbook_Open()
ThisWorkbook.Application.Visible = False
Starter.Show modeless
End Sub

谢谢你的支持。

标签: vbahideuserform

解决方案


请创建一个表单,让我们说“Starter”,具有(至少)一个按钮(“btExit”),复制其代码模块中的下一个代码并显示它。如果讨论中的表单已经包含一些代码InitializeTerminate事件,请也添加以下代码行:

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

推荐阅读