外部表不是预期的格式怎么解决_1分钟拆解:如何将10多个工作表sheet,合并成一张?...

fdbffe1a8371a12813b88d7fec2cd2c2.png

VBA教学时间到啦!

今天,解题宝宝无聊闲逛,惊奇发现了两份VBA代码,特意分享给大家。

是解决如何合并大量不同的工作表哒。

多少张都没问题!亲测有效!

分为以下两种情况


合并同一工作簿的不同工作表。

效果长这样:

本来,同一工作簿下,一个排班表是一张sheet;

375355ac9f3f9fd1c4a706bd42f9e46d.gif

接下里,就变成:所有排班表汇总成一张sheet,格式还自动排好!

23457cb1cb83f76aa82ec56ca199d531.gif
◎ 效果演示

厉害叭?

代码立即备上,宝宝们直接复制粘贴就好,操作无敌容易!

Step 1

  • 新建一个Sheet,鼠标右键选择 查看代码 。这时你打开了VBA界面。

905e31e3424c9afe988ffa7cc21eda5d.gif
◎ 操作演示

Step 2

  • 复制以下代码,粘贴进 模板 编辑框。
Sub 合并当前工作簿下的所有工作表()

Application.ScreenUpdating = False

For j = 1 To Sheets.Count

   If Sheets(j).Name <> ActiveSheet.Name Then

       X = Range("A65536").End(xlUp).Row + 1

       Sheets(j).UsedRange.Copy Cells(X, 1)

   End If

Next

Range("B1").Select

Application.ScreenUpdating = True

MsgBox "解题宝宝,我成功啦", vbInformation, "提示"

End Sub

159fbac64fd09a5865aecafeec58b496.png
◎ 复制进去后的样子

Step 3

  • F5 调试,见证奇迹发生的时刻叭!

7c6a6f9f6ceabdc43e0c9a1407e74d2f.gif
◎ 操作演示

合并不同工作簿的不同工作表。

首先,你的所有工作簿,要放在同一个储存位置,同一个文件夹

那下面介绍的操作才会生效哦。

比如解题宝宝的这三个工作簿,都在「考勤记录」文件夹。

6ca30ea430264658f44b94fbde77c4d2.png

这情况下,当我们想打开三份考勤记录,就不得不打开三个文件。

cda37146fbb9a929f9236e1bb4e99b2d.png

然而,经过解题宝宝的代码,你完全可以实现:三个考勤时间表归总到一个工作簿

以前总是打开一大堆Excel文件,把电脑卡死?

以后再也不会存在呐!打开一个文件,就能查看所有工作簿。

6c80277f7018c50b80772549cf88bbff.gif
◎ 效果演示

Step 1

  • 在同一文件夹里,新建一个 XLSL工作表 ,命名后打开它。

b299abdeaa4140068d43de9077dee7cb.gif
◎ 操作演示

Step 2

  • 点击Sheet1,像刚刚一样打开VBA界面,复制以下代码:
Private Sub hb()

    Dim hb As Object, kOne As Boolean, tabcolor As Long

    Set hb = Workbooks.Add

    Application.DisplayAlerts = False

    For i = hb.Sheets.Count To 2 Step -1

        hb.Sheets(i).Delete

    Next

 

    Dim FileName As String, FilePath As String

    Dim iFolder As Object, rwk As Object, Sh As Object

    Set iFolder = CreateObject("shell.application").BrowseForFolder(0, "请选择要合并的文件夹", 0, "")

    If iFolder Is Nothing Then Exit Sub

    FilePath = iFolder.Items.Item.Path

    FilePath = IIf(Right(FilePath, 1) = "", FilePath, FilePath & "")

    FileName = Dir(FilePath & "*.xls*")

    Do Until Len(FileName) = 0

        If UCase(FilePath & FileName) <> UCase(ThisWorkbook.Path & "" & ThisWorkbook.Name) Then

            Set rwk = Workbooks.Open(FileName:=FilePath & FileName)

            tabcolor = Int(Rnd * 56) + 1

            With rwk

                For Each Sh In .Worksheets

                    Sh.Copy After:=hb.Sheets(hb.Sheets.Count)

                    hb.Sheets(hb.Sheets.Count).Name = FileName & "-" & Sh.Name

                    hb.Sheets(hb.Sheets.Count).Tab.ColorIndex = tabcolor

                    If Not kOne Then hb.Sheets(1).Delete: kOne = True

                Next

                .Close True

             End With

        End If

        Set rwk = Nothing

        FileName = Dir

    Loop

    Application.DisplayAlerts = True

End Sub

6438682db0358d15ce34d48e01751108.png
◎ 复制进去后的样子
  • F5 调试,选择你工作簿们所在的目录。

如果出现「包含外部链接」的提示,选择 更新

3a3e4798c8e66cf3d049f4ea322ed629.gif
◎ 操作演示

大功告成!

你已经把同一文件夹目录的所有工作簿,

都引入了进来,统统变成工作表呐,随意切换查看呐。

6c80277f7018c50b80772549cf88bbff.gif
◎ 效果演示

收藏后,记得多回看才会掌握哒

-你的转发和分享就是最好的鼓励-

解题宝宝 / 作者

〖Skill成长课堂〗微信公众号(ID:skill-up) / 首发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值