特定工作簿隐形Excel VBA

时间:2016-12-09 10:31:52

标签: excel vba excel-vba userform invisible

我正在Excel VBA中编写一个脚本,其中Workbook应该以{{1​​}}打开。我希望只有UserForm可见,而excel窗口本身是不可见的。因此,我已经为开放UserForm

编写了以下代码
Workbook

我意识到我已将整个Excel应用程序设置为不可见。从这个意义上说,现在发生的事情是,当我打开其他Excel工作簿时,一旦打开这个工作簿,它们就会变为不可见。我怎么能这样设置才能使此设置仅适用于此特定工作簿?谢谢

3 个答案:

答案 0 :(得分:2)

部分答案:您也可以设置窗口属性.Visible

ThisWorkbook.Windows(1).Visible = False

然而,这不会隐藏应用程序(如果您只打开一个工作簿,将会有一个空的Excel窗口)所以您需要检查第一个

If Application.Workbooks.Count > 1 Then
    ThisWorkbook.Windows(1).Visible = False
Else
    Application.Visible = False
End If

答案 1 :(得分:1)

可以选择:

Sub HideSheet()

Dim sheet As Worksheet

    Set sheet = ActiveSheet

    ' Hides the sheet but users will be able to unhide it using the Excel UI
    sheet.Visible = xlSheetHidden

    ' Hides the sheet so that it can only be made visible using VBA
    sheet.Visible = xlSheetVeryHidden

End Sub

this SO question

中的更多细节

答案 2 :(得分:0)

你可以做的是以下

private sub workbook_open ()

userform.activate

end sub

然后在用户表单代码中写入

Private sub userform_intialize()

application.screenupdate =false

end sub

现在您只能在启动时看到表单

我不知道如何解决的一个问题是,当您移动窗口时,您仍然会看到旧版本。