phpexcel导入多个工作表_按条件将一个Excel工作表拆分为多个工作表!

本文介绍了如何使用VBA宏在Excel中按条件快速拆分工作表,详细步骤包括设置拆分条件、执行宏、选择条件列和输入标题行数。通过此方法,可以高效地将数据按地区等条件分成多个独立的工作表,方便打印和管理。
摘要由CSDN通过智能技术生成

034cca88d20310f6397df61234f0da80.png

在办公中,使用Excel做数据录入时,为了方便,通常会在同一个Excel文件中的同一个工作表中进行录入。

这样的录入方式能有效提高录入效率。

但是,当需要按照某条件将资料进行分开打印时,就相当不方便了。

比如,将资料按地区进行打印,并分发给对应地区的业务员,这时候用总表来打印的话,我们需要把总表按地区分成多个工作表,再进行打印,逐个表格操作的话,就相当麻烦了。

那么Excel中怎样可以快速的将一个工作表分为多个工作表呢?

下面我们一起来操作吧。

1.  确定需要分拆的工作表

下方为讲解用的案例

e29f756974643ff7e39e98282f1c8166.png

2.  打开查看代码窗口

鼠标右键点击工作表标签,在弹出的菜单中选择查看代码

42b2b4dd9fbc9eedbebbc21364e6849e.png

3.  输入代码(代码在图片下方,大家复制使用即可)

在打开的查看代码窗口中粘贴下方的代码

77d491bf3e06ea0859d8537859be9a84.png

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.  关闭查看代码窗口

只要点击查看代码窗口右上角的关闭按钮,代码就会录入成功,不需要做其他操作

adb1b28bef3b377bf08d63f7b63bd03d.png

5.  打开宏窗口

在开发工具栏目中找到宏按钮,点击即可打开宏窗口

ce98ab6906f4905f54992788a565ef31.png

6.  执行工作表拆分

在打开的宏窗口中,点击选择之前建好的宏命令,然后点击执行按钮

79fb75a2400cfc4314faca444edb7ee2.png

7.  选择工作表拆分条件列

在弹出提示窗口后,点击一下工作表拆分条件所在的列的列标,就可以输入拆分条件所在的列,然后点击确定

99641ec7bbf14c3d4d6f1ae82b0e8d1a.png

8.  输入标题行数

在输入窗口中,输入总表的标题的行数,我们案例中的标题是第一行,那么就输入1。完成这步操作,在工作表拆分后,其他工作表也会以这个第一行为标题行。

5b4e2a1da7f14b1fef17c6c0368e86d8.png

9.  最后确定

在弹出的确定提示窗口中点击确定,即可完成工作表拆分

b0b2365ac571c2bac88ad1e8d1035bf1.png

10.  拆分完成

经过以上的操作后,工作表标签中,除了原来的总表外,还出现了按地区命名的工作表,工作表中会按地区将对应内容建立表格。

683879ad709fa4832253342e67ebba01.png

至此总表已按地区为条件分拆完成。

下期讲解:如何将同一个Excel文件中的所有工作表分别保存为单独Excel文件。

各位如有疑问,可以给我留言哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值