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

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

(60条消息) 合并多个Excel ,批量修改sheet名,批量删除多个指定sheet_aldsong123的博客-CSDN博客_excel批量改sheeticon-default.png?t=LA92https://blog.csdn.net/aldsong123/article/details/86235365?spm=1001.2101.3001.6650.7&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-7.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-7.nonecase

一  :合并多个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)然后就开始开始批量删除了


 


 

你可能感兴趣的:(笔记,excel)