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 调试,选择你工作簿们所在的目录。
如果出现「包含外部链接」的提示,选择 更新 。
大功告成!
你已经把同一文件夹目录的所有工作簿,
都引入了进来,统统变成工作表呐,随意切换查看呐。
收藏后,记得多回看才会掌握哒
-你的转发和分享就是最好的鼓励-
解题宝宝 / 作者
〖Skill成长课堂〗微信公众号(ID:skill-up) / 首发