合并多个Excel ,批量修改sheet名,批量删除多个指定sheet

合并多个Excel 到同一个工作簿中,批量修改sheet名,批量删除指定sheet

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

   效果:

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第1张图片

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第2张图片

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

(2)在空白簿里面右键单击sheet1, 再弹出菜单中点击查看代码 ,调出vb编辑框

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第3张图片

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第4张图片

(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

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第5张图片

(4)点击 绿三角 按钮执行程序 ,会弹出一个宏定义框,然后点击运行。

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第6张图片

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第7张图片

(5)然后会弹出一个选择文件夹的框,你可以选择要合并的工作簿了,然后点击打开,就开始合并了,如果出现一些提示,可以视情况而定选是或否。

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第8张图片

 

视情况而定,这个提示跟你要合并的内容有关

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第9张图片

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

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

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

二 :批量修改sheet名

(1)在合并后的工作簿的所有sheet前建一个空白sheet 并命名为目录,命名随意但是要和代码里的保持一致

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第10张图片

 

(2)右键单击目录,点击  “查看代码”  调出 vb编辑器把下面代码复制进去  ,点击运行按钮 ,然后把vb编辑器最小化,你会看到生成的所有sheet的名字 

(注:代码中的“目录”,是第一个sheet的名子)

 

Public Sub 获取各工作表的名称()

    For i = 1 To Worksheets.Count

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

    Next

End Sub

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第11张图片

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第12张图片

(3)A 列是获得的所有sheet名字,然后再在 B 列新增上要修改的名字,要一一对应,

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第13张图片

(4)再打开刚缩小化的vb编辑器,把下面代码复制进去执行;

Public Sub 更改名称()

    For i = 2 To Worksheets.Count

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

    Next

End Sub

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第14张图片

(5)上面执行完后,到这一步就算可以了

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第15张图片

 

 

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

-----------------------------------------------批量删除指定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名,可以模糊匹配

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第16张图片

(2)点击 <绿色小三角> 按钮执行  会有个弹出框,再点 “运行”  (注:先点绿色小三角运行)

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第17张图片

(3)然后就开始开始批量删除了

合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_第18张图片

 

你可能感兴趣的:(Excel)