- 帖子
- 13
- 主題
- 0
- 精華
- 0
- 積分
- 63
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- office 365
- 閱讀權限
- 20
- 性別
- 女
- 註冊時間
- 2022-2-1
- 最後登錄
- 2024-11-20
|
回復 1# goner
依你的提問 如下圖片 在範圍內的運作看看
總表的程式碼如下- Option Explicit
- Private Sub CommandButton1_Click() '取消隱藏全部工作表的按鍵程式碼
- Dim Sh As Worksheet
- Application.ScreenUpdating = False
- For Each Sh In Sheets
- Sh.Visible = True
- Next
- Application.ScreenUpdating = True
- End Sub
- Private Sub Worksheet_Change(ByVal Target As Range)
- If Target.Count = 1 Then HideSheet Target
- End Sub
- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
- If Target.Count = 1 Then HideSheet Target
- End Sub
- Sub HideSheet(Target As Range)
- Dim Rng As Range, A組 As String, E As Variant
- If Application.Intersect(Range("A1").CurrentRegion, Target) Is Nothing Then Exit Sub
- Application.EnableEvents = False '不觸動 Worksheet預設事件程式
- On Error GoTo Err '程式產生錯誤時移到 標記點
- With Range("A1").CurrentRegion
- Set Rng = Range(.Cells(2, Target.Column), .Cells(.Rows.Count, Target.Column))
- End With
- A組 = "總表" 'A組 = "總表,表1,表2,表3" ' ***可修改 必須顯示的工作表
- For Each E In Rng
- A組 = A組 & "," & E
- Set Target = E
- Debug.Print TypeName(Sheets(E.Value)) ' '測試儲存格的工作表名稱是否存
- Next
- A組 = "," & A組 & "," '
- Application.ScreenUpdating = False
- For Each E In Sheets
- E.Visible = InStr(UCase(A組), "," & UCase(E.Name) & ",") > 0
- '* 比對完全相同的工作表名稱 ->> "," & UCase(i.Name) & ","
- Next
- Application.ScreenUpdating = True
- Application.EnableEvents = True '回復觸動 Worksheet預設事件程式
- Exit Sub
- Err: '處理程式碼的錯誤
- MsgBox IIf(Target <> "", " 找不到 工作表 [" & Target & "]", Target.Address(0, 0) & "沒有輸入....")
- Application.EnableEvents = True '回復觸動 Worksheet預設事件程式
- End Sub
複製代碼 |
|