在办公中,使用Excel做数据录入时,为了方便,通常会在同一个Excel文件中的同一个工作表中进行录入。
这样的录入方式能有效提高录入效率。
但是,当需要按照某条件将资料进行分开打印时,就相当不方便了。
比如,将资料按地区进行打印,并分发给对应地区的业务员,这时候用总表来打印的话,我们需要把总表按地区分成多个工作表,再进行打印,逐个表格操作的话,就相当麻烦了。
那么Excel中怎样可以快速的将一个工作表分为多个工作表呢?
下面我们一起来操作吧。
1. 确定需要分拆的工作表
下方为讲解用的案例
2. 打开查看代码窗口
鼠标右键点击工作表标签,在弹出的菜单中选择查看代码
3. 输入代码(代码在图片下方,大家复制使用即可)
在打开的查看代码窗口中粘贴下方的代码
Sub 工作表拆分()
Dim d As Object, sht As Worksheet, arr, brr, r, kr, i&, j&, k&, x&
Dim Rng As Range, Rg As Range, tRow&, tCol&, aCol&, pd&
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set d = CreateObject("scripting.dictionary")
Set Rg = Application.InputBox("请输入拆分条件所在的列", Title:="提示", Type:=8)
tCol = Rg.Column
tRow = Val(Application.InputBox("请输入总表标题的行数"))
If tRow = 0 Then MsgBox "未输入标题行行数,程序退出!": Exit Sub
Set Rng = ActiveSheet.UsedRange
arr = Rng
tCol = tCol - Rng.Column + 1
aCol = UBound(arr, 2)
For i = tRow + 1 To UBound(arr)
If Not d.exists(arr(i, tCol)) Then
d(arr(i, tCol)) = i
Else
d(arr(i, tCol)) = d(arr(i, tCol)) & "," & i
End If
Next
For Each sht In Worksheets
If d.exists(sht.Name) Then sht.Delete
Next
kr = d.keys
For i = 0 To UBound(kr)
If kr(i) <> "" Then
r = Split(d(kr(i)), ",")
ReDim brr(1 To UBound(r) + 1, 1 To aCol)
k = 0
For x = 0 To UBound(r)
k = k + 1
For j = 1 To aCol
brr(k, j) = arr(r(x), j)
Next
Next
With Worksheets.Add(, Sheets(Sheets.Count))
.Name = kr(i)
.[a1].Resize(tRow, aCol) = arr
.[a1].Offset(tRow, 0).Resize(k, aCol) = brr
Rng.Copy
.[a1].PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.[a1].Select
End With
End If
Next
Sheets(1).Activate
Set d = Nothing
Erase arr: Erase brr
MsgBox "工作表拆分完成!"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
4. 关闭查看代码窗口
只要点击查看代码窗口右上角的关闭按钮,代码就会录入成功,不需要做其他操作
5. 打开宏窗口
在开发工具栏目中找到宏按钮,点击即可打开宏窗口
6. 执行工作表拆分
在打开的宏窗口中,点击选择之前建好的宏命令,然后点击执行按钮
7. 选择工作表拆分条件列
在弹出提示窗口后,点击一下工作表拆分条件所在的列的列标,就可以输入拆分条件所在的列,然后点击确定
8. 输入标题行数
在输入窗口中,输入总表的标题的行数,我们案例中的标题是第一行,那么就输入1。完成这步操作,在工作表拆分后,其他工作表也会以这个第一行为标题行。
9. 最后确定
在弹出的确定提示窗口中点击确定,即可完成工作表拆分
10. 拆分完成
经过以上的操作后,工作表标签中,除了原来的总表外,还出现了按地区命名的工作表,工作表中会按地区将对应内容建立表格。
至此总表已按地区为条件分拆完成。
下期讲解:如何将同一个Excel文件中的所有工作表分别保存为单独Excel文件。
各位如有疑问,可以给我留言哦