- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
10#
發表於 2014-10-16 19:47
| 只看該作者
回復 9# asch2007 - Sub 刪表()
- Dim i As Integer, sht As Worksheet
- Worksheets("刪表名單").Activate
- Application.DisplayAlerts = False
- For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
- For Each sht In Worksheets
- If sht.name = Cells(i, 1) Then sht.Delete
- Next
- Next
- Application.DisplayAlerts = True
- End Sub
- Sub 刪表2()
- Dim i As Integer, sht As Worksheet
- Worksheets("刪表名單").Activate
- Application.DisplayAlerts = False
- For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
- For Each sht In Worksheets
- If sht.name = Cells(i, 1) Then
- sht.Delete
- Exit For
- End If
- Next
- Next
- Application.DisplayAlerts = True
- End Sub
- Sub 刪表3()
- Dim Sh As Worksheet, d As Object, a As Range
- Set d = CreateObject("Scripting.Dictionary")
- For Each Sh In Sheets
- Set d(Sh.name) = Sh '暫存所有工作表
- Next
- Application.DisplayAlerts = False
- With Sheets("刪表名單") '欲刪除名單工作表
- For Each a In .Range(.[A1], .Cells(.Rows.Count, 1).End(xlUp))
- If d.exists(CStr(a)) = True Then d(CStr(a)).Delete '為防止以數字為名的工作表,故使用Cstr轉成字串
- Next
- End With
- Application.DisplayAlerts = True
- End Sub
- Sub 刪表_EX()
- Dim i As Integer
- Application.DisplayAlerts = False
- With Worksheets("刪表名單")
- On Error Resume Next
- For i = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
- .Parent.Sheets(.Cells(i, 1).Value).Delete
- Next
- On Error GoTo 0
- End With
- Application.DisplayAlerts = True
- End Sub
複製代碼 |
|