vba - 限制用户与工作簿的交互 - 隐藏工作簿/仅显示用户窗体
问题描述
是否可以使用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
推荐阅读
- sql - Add DELETE to query that returns duplicate records | SQL Server
- mysql - SQL查询按名称平均
- javascript - 使用 CSS 和不使用 JavaScript 将可变文本长度调整到固定容器宽度
- html - How to show information by selecting a date from the list
- kubernetes - 从通用 Kibana UI 监控来自多个 Kubernetes 集群(使用 GCP 和 Kops)的 pod 日志
- angular - Prime NG:打字稿中的树propagateSelectionUp
- lua - 什么是 VoidString 对象?
- node.js - 关联模型中的 SequelizeEagerLoadingError
- c# - 将用户名添加到 Serilog
- cordova - 离子文件加密