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

 

  • 12
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aldsong123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值