VBA宏隐藏表

时间:2016-09-22 20:51:38

标签: excel vba excel-vba

我知道我的问题到处都有答案,但我已经尝试了所有问题,我不确定我错过了什么,或者你有什么。基本上我在excel电子表格中有大约20个选项卡。在工作簿打开时,我试图将它们全部隐藏起来,但这并没有成功。当我的工作簿打开时,我看到床单闪烁一秒钟然后一切都像通常那样。我基本上循环遍历所有工作表并将它们隐藏起来......

Private Sub Workbook_Open()
Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets
    ws.Visible = xlSheethidden
Next ws

LogForm.Show

End Sub

我做错了什么?如果我只是......我就能隐藏它们。

sheets("Project").visible=false

但是,由于用户可能会添加更多工作表,我正在努力确保我的代码是动态的。

1 个答案:

答案 0 :(得分:2)

我们可以通过几种不同的方式让Userform可见而工作簿不可见。

在开放时最小化您的工作簿。

Private Sub Workbook_Open() 'This is in the Workbook Code
    Application.WindowState = xlMinimized
    UserForm1.Show xlModeless
End Sub

隐藏单个工作表。

Sub mySub()
    Dim ws as Worksheet: Set ws = ThisWorkbook.Sheets(1)

    ws.Visible = xlSheetHidden
End Sub

完全隐藏Excel窗口(仅显示用户窗体)

Sub mySub()
    UserForm1.Show xlModeless
    Application.Visible = False 'Can also be placed in Workbook_Open() to hide on open
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Application.Visible = True
End Sub

隐藏单个工作簿

Sub MySub()
    Windows("MyWorkbook").Visible = False
End Sub