合併多個Excel ,批量修改sheet名,批量刪除多個指定sheet

合併多個Excel 到同一個工作簿中,批量修改sheet名,批量刪除指定sheet

一  :合併多個excel到同一個excel表中,分成多個sheet展示。

   效果:

(1)首先,可以把要合併的工作簿excel放到一個工作夾中,新建一個空白excel工作簿

(2)在空白簿裏面右鍵單擊sheet1, 再彈出菜單中點擊查看代碼 ,調出vb編輯框

(3)把下面代碼複製到vb編輯器中   (注:代碼中的 *.xlsx 是要合併文件的文件類型,可以修改自己的文件類型如:*.xls)

Sub 工作薄間工作表合併()
Dim FileOpen
Dim X As Integer
Application.ScreenUpdating = False
FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xlsx),*.xlsx", MultiSelect:=True, Title:="合併工作薄")
X = 1
While X <= UBound(FileOpen)
Workbooks.Open Filename:=FileOpen(X)
Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
X = X + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
errhadler:
MsgBox Err.Description
End Sub

(4)點擊 綠三角 按鈕執行程序 ,會彈出一個宏定義框,然後點擊運行。

(5)然後會彈出一個選擇文件夾的框,你可以選擇要合併的工作簿了,然後點擊打開,就開始合併了,如果出現一些提示,可以視情況而定選是或否。

 

視情況而定,這個提示跟你要合併的內容有關

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------批量修改sheet名-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

二 :批量修改sheet名

(1)在合併後的工作簿的所有sheet前建一個空白sheet 並命名爲目錄,命名隨意但是要和代碼裏的保持一致

 

(2)右鍵單擊目錄,點擊  “查看代碼”  調出 vb編輯器把下面代碼複製進去  ,點擊運行按鈕 ,然後把vb編輯器最小化,你會看到生成的所有sheet的名字 

(注:代碼中的“目錄”,是第一個sheet的名子)

 

Public Sub 獲取各工作表的名稱()

    For i = 1 To Worksheets.Count

        Sheets("目錄").Cells(i, 1).Value = Worksheets(i).Name

    Next

End Sub

(3)A 列是獲得的所有sheet名字,然後再在 B 列新增上要修改的名字,要一一對應,

(4)再打開剛縮小化的vb編輯器,把下面代碼複製進去執行;

Public Sub 更改名稱()

    For i = 2 To Worksheets.Count

        Worksheets(i).Name = Worksheets("目錄").Cells(i, 2).Value

    Next

End Sub

(5)上面執行完後,到這一步就算可以了

 

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------批量刪除指定sheet--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

三 :批量刪除指定sheet

如上可以先獲取所有sheet 的名字, 然後把下面代碼粘到模糊vb編輯器裏面執行,

Sub 爲什麼用for循環無法刪除()
    Set d = CreateObject("scripting.dictionary")
    For i = 1 To Sheets.Count
      
        If Sheets(i).Name Like "崗位清單*" Then
            d(Sheets(i).Name) = ""
        End If
    Next
    For Each K In d.keys
    Sheets(K).Delete
    Next
End Sub

(1)代碼中修改要刪除的sheet名,可以模糊匹配

(2)點擊 <綠色小三角> 按鈕執行  會有個彈出框,再點 “運行”  (注:先點綠色小三角運行)

(3)然後就開始開始批量刪除了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章