如果上述評論中的建議尚未解決您的問題,請嘗試執行以下操作。
打開Excel的新副本。創建一個新的工作簿,並將其另存爲「myWorkbook.xlsm」 - 一個啓用了宏的工作簿。確保它至少有兩張紙。
現在打開VBA編輯器,創建一個新的模塊,並輸入以下代碼:
Option Explicit
Sub actSheet()
' simple code to activate Sheet2 in myWorkbook.xlsm
Dim wb as Workbook
Dim ws as Worksheet
Set wb = Application.Workbooks("myWorkbook.xlsm")
Set ws = wb.Sheets("Sheet2")
If Not ws.Visible = xlSheetVisible Then ws.Visible = xlSheetVisible
ws.Activate
End Sub
這是利用了我認爲是最佳實踐你正在嘗試做的(雖然它幾乎從來沒有必要激活工作表 - 參見上面Siddharth Rout評論中的優秀鏈接)。具體做法是:
- 開始
Option Explicit
(所以你必須聲明每個變量)
- 包含註釋來描述你的函數
- 聲明所用
- 樹立引用從工作簿的表中的所有變量,並通過名稱:名稱不太可能比爲了改變
- 確保您要激活的片可見
最後 - 比較你在做什麼與上面;如果你真的不知道區別,而且你仍然有錯誤,請回來告訴我們。
「ActiveWorkbook」中有多少張? –
除非沒有工作表2,否則應該起作用。 –
您的第二張工作表是隱藏的嗎?在第三行之前嘗試'如果Destsheet2.Visible <> -1然後Detesheet2.Visible = -1'。 –