2016-09-22 93 views
0

我知道我的問題到處都有答案,但我已經全部嘗試過,我不確定我錯過了什麼,或者你有什麼。基本上我有一個Excel電子表格中大約20個選項卡。在打開工作簿時,我試圖隱藏它們,但這並不奏效。當我的工作簿打開時,我看到工作表閃爍一秒鐘,然後一切就像平常一樣。我基本上遍歷所有的工作表,並使它們隱藏像這樣...VBA宏隱藏表

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 

但由於用戶可能會添加更多的工作表,我試圖確保我的代碼是動態的。

+6

它應該是'ws.visible = xlSheetHidden ' – PeterT

+5

IIRC,你無法隱藏**每個**工作表。至少有一個必須保持可見。順便說一句,那應該是'ThisWorkbook'而不是'ActiveWorkbook'。 – Jeeped

+1

[隱藏工作簿/工作表Excel VBA](http://stackoverflow.com/questions/39626327/hide-workbook-worksheets-excel-vba) – YowE3K

回答

1

我們可以通過幾種不同的方式讓用戶窗體可見,而工作簿不可見。

最小化您的工作簿打開。

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 
+0

謝謝,這真是太棒了!我遇到的唯一問題是ENABLE CONTENT提示。在用戶點擊按鈕之前,似乎沒有代碼被執行,但這是我絕對可以使用的。 – BobSki