Excel 有没有办法防止用户取消隐藏工作簿?

Excel 有没有办法防止用户取消隐藏工作簿?,excel,vba,Excel,Vba,我熟悉隐藏工作表和防止用户取消隐藏它们;但是,有没有一种方法可以使用VBA使工作簿/窗口非常隐藏,或者至少需要密码才能取消隐藏 对于我的情况,我必须打开工作簿,但对用户隐藏。我问这个问题的原因是我注意到,尽管我已经用密码隐藏和保护了我的工作簿,但我仍然可以从任何其他打开的工作簿中取消隐藏它 Sub hideWorkbook() Dim xlApp As Excel.Application Set xlApp = New Excel.Application xlApp.Workbooks.O

我熟悉隐藏工作表和防止用户取消隐藏它们;但是,有没有一种方法可以使用VBA使工作簿/窗口非常隐藏,或者至少需要密码才能取消隐藏

对于我的情况,我必须打开工作簿,但对用户隐藏。我问这个问题的原因是我注意到,尽管我已经用密码隐藏和保护了我的工作簿,但我仍然可以从任何其他打开的工作簿中取消隐藏它

Sub hideWorkbook()

Dim xlApp As Excel.Application

Set xlApp = New Excel.Application

xlApp.Workbooks.Open ThisWorkbook.FullName  'Assign current workbook to new instance of Excel.

xlApp.Visible = True                        'Set instance to visible.
Set xlApp = Nothing                         'Set object to nothing.

Application.Visible = False                 'As recommended, made application invisible.

Application.DisplayAlerts = False           'Turn off alerts.
ThisWorkbook.Windows(1).Visible = False     'Hide the workbook opened.
Application.DisplayAlerts = True            'Turn on alerts.

End Sub

感谢VBASIC208的评论和对其建议的扩展,以下内容对我有效。我没有使用
Application.Visible=False
,而是使用
Application.Windows()
选择了特定的工作簿窗口,并使其不可见

Sub hideWorkbook()                         

Dim xlApp As Excel.Application

Set xlApp = New Excel.Application

xlApp.Workbooks.Open ThisWorkbook.FullName           'Open workbook in new Excel instance.

xlApp.Visible = True                                 'Set instance to visible.
Set xlApp = Nothing                                  'Set object to nothing.

Application.Windows("MyWorkbook").Visible = False    'Make the specific window invisible.

End Sub
您可以使用:

Sub test()
    ActiveSheet.Visible = xlSheetVeryHidden
End Sub

您可以在另一个
Excel
实例中打开它,将
Visible
属性设置为
False
。但如果没有进一步的信息,很难说这是个好主意。添加更多信息和/或一些代码,我们可以看到你计划做什么。我的意思是你向我们展示你实际使用它做什么的代码。你打开它不是为了让它到处都是。另外,
Workbook\u Open
是为肯定无法使用的工作簿事件保留的。@vbasic208感谢您的回复!我更新了代码以显示我尝试的内容。虽然我能够在另一个
Excel
实例中打开它,并将
属性设置为
False
,但它隐藏了其他Excel工作簿。太近了@VBASIC208好的,我想我明白了。我将张贴答案,以显示我有什么。