- 帖子
- 22
- 主題
- 1
- 精華
- 0
- 積分
- 71
- 點名
- 0
- 作業系統
- Windows 11
- 軟體版本
- Office 2021
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2021-12-10
- 最後登錄
- 2025-5-16
|
本帖最後由 goner 於 2022-12-20 16:55 編輯
感謝Andy的熱心幫忙以及各位的回覆,現在找到原因囉^^
檢視 [區域變數] 視窗,發現其中有個變數多了一個 "雙引號,而導致無法正確判斷工作表名稱,調整後已可正常使用功能。- Option Explicit
- Sub 工作表顯示隱藏控制()
- Application.ScreenUpdating = False
- Dim N%, i&, xR, V, Y, Z, No, G1, G2, G3
- No = InputBox("請輸入 0~4 數字!", "工作表顯示隱藏控制", 0)
- If No < 0 Or No > 4 Then Exit Sub
- Set Y = CreateObject("Scripting.Dictionary")
- V = [A1] ' 這裡配合巨集 收集15個工作表名() 使用,蒐集目前活頁簿所有工作表名稱。
- V = Split(V, ",")
- For Each xR In [A1:E1]
- Z = Split(xR.Address, "$")(1)
- Y(Z) = Array(V(1 + N), V(2 + N), V(3 + N))
- N = N + 3
- Next
- For Each xR In ActiveWorkbook.Worksheets
- xR.Visible = True
- Next
- If No = 0 Then GoTo 111:
- Select Case No
- Case 1: G1 = Y("C"): G2 = Y("D"): G3 = Y("E")
- Case 2: G1 = Y("B"): G2 = Y("D"): G3 = Y("E")
- Case 3: G1 = Y("B"): G2 = Y("C"): G3 = Y("E")
- Case 4: G1 = Y("B"): G2 = Y("C"): G3 = Y("D")
- End Select
- Sheets(G1).Visible = False
- Sheets(G2).Visible = False
- Sheets(G3).Visible = False
- 111:
- ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
- Set Y = Nothing
- Erase V
- End Sub
- '執行下列程式碼可取得 15個工作表名的字串
- Sub 收集15個工作表名()
- Dim i&, Na$
- For i = 1 To 15
- Na = Na & "," & Sheets(i).Name
- Next
- 'Workbooks.Add ' 以原有活頁簿使用,所以不新增活頁簿。
- [A1] = "V=""" & Na & "" ' 這裡有做調整。原[A1] = "V = """ & Na & """" 變數會多了一個 "雙引號,而導致無法正確判斷工作表名稱。
- End Sub
- '把 15個工作表名的字串 與上方紅字置換掉
複製代碼 以下是一次 取消隱藏 所有工作表程式碼,供參考。- Sub UnhideAllSheets()
- Dim UAS As Worksheet
- For Each UAS In ActiveWorkbook.Worksheets
- UAS.Visible = xlSheetVisible
- Next UAS
- End Sub
複製代碼 |
|