由Skill成长学院原创出品
作者:解题宝宝
编辑:乌妹妹
Excel · 基础必备 · 高效率 · 懒癌必备
⏱1mins ?有作业
又到了久违的VBA教学时间!
今天,解题宝宝无聊闲逛,惊奇发现了两份VBA代码,特意分享给大家。
是解决如何合并大量不同的工作表哒。
多少张都没问题!亲测有效!
分为以下两种情况☟
合并同一工作簿的不同工作表。
效果长这样:
本来,同一工作簿下,一个排班表是一张sheet;
接下里,就变成:所有排班表汇总成一张sheet,格式还自动排好!
◎ 效果演示
厉害叭?
代码立即备上,宝宝们直接复制粘贴就好,操作无敌容易!
Step 1
新建一个Sheet,鼠标右键选择 查看代码 。这时你打开了VBA界面。
◎ 操作演示
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
◎ 复制进去后的样子
Step 3
按 F5 调试,见证奇迹发生的时刻叭!
◎ 操作演示
合并不同工作簿的不同工作表。
首先,你的所有工作簿,要放在同一个储存位置,同一个文件夹,
那下面介绍的操作才会生效哦。
比如解题宝宝的这三个工作簿,都在「考勤记录」文件夹。
这情况下,当我们想打开三份考勤记录,就不得不打开三个文件。
然而,经过解题宝宝的代码,你完全可以实现:三个考勤时间表归总到一个工作簿!
以前总是打开一大堆Excel文件,把电脑卡死?
以后再也不会存在呐!打开一个文件,就能查看所有工作簿。
◎ 效果演示
Step 1
在同一文件夹里,新建一个 XLSL工作表 ,命名后打开它。
◎ 操作演示
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
◎ 复制进去后的样子
按 F5 调试,选择你工作簿们所在的目录。
如果出现「包含外部链接」的提示,选择 更新 。
◎ 操作演示
大功告成!
你已经把同一文件夹目录的所有工作簿,
都引入了进来,统统变成工作表呐,随意切换查看呐。
◎ 效果演示
练手时间
因为今天教学的是VBA执行代码,
所以只给素材给大家,只要代码运行成功,就代表你的操作成功呐。
作业包里有两个Excel文件,一份排班表,一份考勤表。
公众号后台敲「527」领取本期作业。
最后,各位粉丝宝宝提问的话,请到文章下方留言,或者连同把表格一起发到邮箱呐(向公众号输入「邮箱」即可获取邮箱地址)。
这样解题宝宝才更能看见、有了表格也更明白问题是啥。
祝晚上学习愉快!
收藏后,记得多回看才会掌握哒
-你的转发和分享就是最好的鼓励-
skill成长课堂
一直陪你升职加薪
扫码关注我吧
「skill大大说,
多1个好看
今天就给我加鸡腿」↘