1
我在Excel 2013中有一個用戶窗體,在操作之前清理用戶的Excel頁面。公共模塊具有以下VBA代碼:在Excel VBA中隱藏非活動工作表
Sub ShowForm()
With ActiveWorkbook
.Worksheets("Sheet1").Activate
.Worksheets("Sheet2").Visible = False 'Hide didn't work
.Worksheets("Sheet3").Visible = False 'Hide didn't work
End With
UserForm1.Show
End Sub
如何隱藏工作表2和3,激活或使工作表1中可見?代碼應該模仿右鍵單擊選項卡並選擇「隱藏」。以上代碼將引發Run-time error '9': Subscript out of range
。
然後'ActiveWorkbook'指向具有工作簿僅1(如果'.Worksheets(2)...'錯誤)或2(如果'.Worksheets(3)...'錯誤)的工作表。在即時窗口中查詢「ActiveWorkbook.Name」以知道您實際指向哪個工作簿。但最好使用'With Workbooks(「MyWorkbookName」)'並確保你正在處理想要的工作簿 – user3598756
我嘗試使用'With Workbooks ... End With'並得到相同的'Run-time error'9' :下標越界.'。我還使用了立即窗口來確定當前的「ActiveWorkbook.Name」。我正在使用正確的ActiveWorkbook。 – Andy
我看到你編輯過,現在使用'.Worksheets(「Sheet 2」)'(和類似的)。所以現在的要點是,你的'Workbooks(「MyWorkbookName」)'實際上是否有以'Sheet 1'命名的工作表(如果有.Worksheets(「Sheet 1」)錯誤)或者「Sheet 3」 '.Worksheets(「Sheet 3」)'錯誤)。哪條線出錯? – user3598756