您可以通過以下方式支持我:1、關(guān)注、點(diǎn)贊、留言、分享、打賞;2、點(diǎn)擊感興趣的廣告、購買我的安利微店產(chǎn)品;3、添加我的合谷醫(yī)療企業(yè)微信,謝謝! ☆本期內(nèi)容概要☆ 大家好,我是冷水泡茶,我們前面分享了批量處理EXCEL工作簿、批量處理文件夾等方法: 今天給大家分享的是在同一個EXCEL工作簿中,批量創(chuàng)建指定名稱工作表、批量刪除指定名稱。 1、數(shù)據(jù)透視表法批量創(chuàng)建工作表:假設(shè)我們需要插入以01月-12月份命名的工作表 
(1)在一張空白的表中,A1輸入“工作表名”,A2~A13輸入01-12月字段
(2)選中A列,插入數(shù)據(jù)透視表
(3)把“工作表名”字段拖到“篩選”區(qū)
(4)點(diǎn)數(shù)據(jù)透視表中“工作表名”右側(cè)單元格的下拉箭頭,再點(diǎn)“選擇多項(xiàng)”,把“空白”字段前的勾去掉。
(5)選中數(shù)據(jù)透視表中的“工作表名”字段,點(diǎn)擊菜單“分析”、“數(shù)據(jù)透視表“、“選項(xiàng)”(下拉箭頭)、“顯示報表篩選頁”、“確定” (6)12張表插入成功,每張表都是一個數(shù)據(jù)透視表。如果不需要這些數(shù)據(jù)透視表,可以一起選中這12張表,按“Delete”鍵,就得到12張以月份命名的空白表格。
(7)當(dāng)然,數(shù)據(jù)透視表的這種操作,根本目的不是為了插入工作表,而是把篩選的關(guān)鍵字分別顯示為單獨(dú)的工作表,便于查看,可以隨數(shù)據(jù)源的變化而一起更新。
2、VBA代碼法:

(1)參照前述,先在Sheet1表中輸入每個月的字段。
(2)打開VBA編輯器,插入模塊1,輸入以下代碼: (A)創(chuàng)建工作表:
Sub CreateNewSheets() Dim ws As Worksheet Dim NewWs As Worksheet Dim lastRow As Integer Dim wsName As String t = 0 Set ws = ThisWorkbook.Sheets("Sheet1") ws.Activate lastRow = ws.UsedRange.Rows.Count For i = 2 To lastRow wsName = ws.Cells(i, 1) If wsName <> "" Then On Error Resume Next Set NewWs = ThisWorkbook.Worksheets(wsName) On Error GoTo 0 If NewWs Is Nothing Then t = t + 1 With ActiveWorkbook Set NewWs = .Worksheets.Add(after:=.Sheets(.Sheets.Count)) NewWs.Name = wsName End With End If Set NewWs = Nothing End If Next ws.Activate MsgBox "成功添加【" & t & "】張工作表!" End Sub
(B)刪除工作表: Sub deleteSheets() Dim ws As Worksheet Dim currWs As Worksheet Dim lastRow As Integer Dim wsName As String Application.DisplayAlerts = False t = 0 Set ws = ThisWorkbook.Sheets("Sheet1") ws.Activate lastRow = ws.UsedRange.Rows.Count For i = 2 To lastRow wsName = ws.Cells(i, 1) If wsName <> "" Then On Error Resume Next Set currWs = ThisWorkbook.Worksheets(wsName) On Error GoTo 0 If Not currWs Is Nothing Then t = t + 1 currWs.Delete End If Set currWs = Nothing End If Next Application.DisplayAlerts = True MsgBox "成功刪除【" & t & "】張工作表!" End Sub
(3)在sheet1中插入兩個命令按鈕: Private Sub CmdCreateSheets_Click() Call CreateNewSheets End Sub Private Sub CmdDeleteSheets_Click() Call deleteSheets End Sub
|