excel将一个工作表根据条件拆分成多个工作表

作者&投稿:卜炕 (若有异议请与网页底部的电邮联系)
本例介绍在excel中如何将一个工作表根据条件拆分成多个工作表。
注意:很多朋友反映sheets(i).delete这句代码出错,要注意下面第一个步骤,要拆分的数据工作表名称为“数据源”,而不是你新建工作簿时的sheet1这种。手动改成“数据源”即可。
操作步骤:
原始数据表如下(名称为:数据源),需要根据B列人员姓名拆分成每个人一个工作表。

点击【开发工具】-【Visual Basic】或者Alt+F11的快捷键进入VBE编辑界面。

如下图所示插入一个新的模块。

如下图,粘贴下列代码在模块中: Sub CFGZB() Dim myRange As Variant Dim myArray Dim titleRange As Range Dim title As String Dim columnNum As Integer myRange = Application.InputBox(prompt:="请选择标题行:", Type:=8) myArray = WorksheetFunction.Transpose(myRange) Set titleRange = Application.InputBox(prompt:="请选择拆分的表头,必须是第一行,且为一个单元格,如:“姓名”", Type:=8) title = titleRange.Value columnNum = titleRange.Column Application.ScreenUpdating = False Application.DisplayAlerts = False Dim i, Myr, Arr, num Dim d, k For i = Sheets.Count To 1 Step -1 If Sheets(i).Name "数据源" Then Sheets(i).Delete End If Next i Set d = CreateObject("Scripting.Dictionary") Myr = Worksheets("数据源").UsedRange.Rows.Count Arr = Worksheets("数据源").Range(Cells(2, columnNum), Cells(Myr, columnNum)) For i = 1 To UBound(Arr) d(Arr(i, 1)) = "" Next k = d.keys For i = 0 To UBound(k) Set conn = CreateObject("adodb.connection") conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" ThisWorkbook.FullName Sql = "select * from [数据源$] where " title " = '" k(i) "'" Worksheets.Add after:=Sheets(Sheets.Count) With ActiveSheet .Name = k(i) For num = 1 To UBound(myArray) .Cells(1, num) = myArray(num, 1) Next num .Range("A2").CopyFromRecordset conn.Execute(Sql) End With Sheets(1).Select Sheets(1).Cells.Select Selection.Copy Worksheets(Sheets.Count).Activate ActiveSheet.Cells.Select Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False Next i conn.Close Set conn = Nothing Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub

如下图所示,插入一个控件按钮,并指定宏到刚才插入的模块代码。

点击插入的按钮控件,根据提示选择标题行和要拆分的列字段,本例选择“姓名”字段拆分,当然也可以选择C列的“名称”进行拆分,看实际需求。

代码运行完毕后在工作簿后面会出现很多工作表,每个工作表都是单独一个人的数据。具体如下图所示:

注意: 1)原始数据表要从第一行开始有数据,并且不能有合并单元格; 2)打开工作簿时需要开启宏,否则将无法运行代码。

~

如何将一个excel工作表的数据拆分成多个sheet?
答:1.打开Excel表格之后,我们首先在空白表格处依次将要创建的工作表名称按列输入。2.接着我们全选这部分内容,然后点击工具栏中的“插入”,在插入对应的页面内勾选“表格”-“数据透视表”。3.在弹出的创建数据透视表对话框,首先勾选页面中间的“现有工作表”,然后将位置定位到任一空白单元格内。4....

按条件拆分Excel表格两个单元格中的数字
答:Sub SeparateNumber()Dim strFirst As String Dim strResult As String Dim StartNum As Integer Dim EndNum As String Dim i As Integer, j As Integer strFirst = Left(Range(”B1″), 1)StartNum = InStr(1, Range(”A1″), strFirst)j = 1 For i = StartNum To Len(Range(”A1″...

excel将一个工作表根据条件拆分成多个工作表
答:点击插入的按钮控件,根据提示选择标题行和要拆分的列字段,本例选择“姓名”字段拆分,当然也可以选择C列的“名称”进行拆分,看实际需求。代码运行完毕后在工作簿后面会出现很多工作表,每个工作表都是单独一个人的数据。具体如下图所示:注意: 1)原始数据表要从第一行开始有数据,并且不能有合并单...

一个Excel工作簿中的多个工作表想拆分成独立表格
答:一个Excel工作簿中的多个工作表想拆分成独立表格,首先打开表格找到并选中表格右下角的表一,然后,点击右键选择“移动或复制工作表”,然后,打开工作薄点击新工作薄,然后,点击确定,然后点击保存,打开保存界面后再点击“保存”(喜欢保存到哪里请根据自己的需求),这样表一就保存下来了。保存表二跟...

excel将一个工作表根据条件拆分成多个工作簿
答:× 个人、企业类侵权投诉 违法有害信息,请在下方选择后提交 类别 色情低俗 涉嫌违法犯罪 时政信息不实 垃圾广告 低质灌水 我们会通过消息、邮箱等方式尽快将举报结果通知您。 说明 0/200 提交 取消 领取奖励 我的财富值 -- 去登录 我的现金 -- 去登录 做任务开宝箱 累计完成 0 个任务 10任务 略略...

急求把excel排查表按户主条件拆分成多个工作表,并修改sheet名为户主...
答:Sub 批量拆分表()'2020-2-13 21:23:48 Dim r As Long, mb(), i As Long, j As Long, wt1 As Worksheet, wt2 As Worksheet, k1 As Long, k2 As Long r = Cells(Rows.Count, 3).End(xlUp).Row j = 0 Set wt1 = ActiveSheet ReDim mb(r, 2)For i = 5 To r If Cells(i...

excel中一个sheet里面的内容是不是能拆分成N个工作表或者N个sheet,按照...
答:肯定可以的,一个表里单元格可以调用另一个表的内容,你只要把单元格的公式设置对就可以了,这就是你所谓的条件,你可以把条件讲具体些。举个例子,你在表2一个单元格中输入=Sheet1!A25,就会调用表1 A25的内容,会根据表1变动,你只要再复制下只保留值就可以了。调用一个后,根据规则填充就可以...

excel中将一张表中数据拆分成多个工作表,按部门不相同的拆分成单个工...
答:1、第一步,在excel加载项中,选择“方方格子”选项,然后选择“汇总拆分”选项,见下图,转到下面的步骤。2、第二步,执行完上面的操作之后,在下拉菜单中,选择“拆分工作簿”选项,见下图,转到下面的步骤。3、第三步,执行完上面的操作之后,设置要拆分的工作表以及需要存储的位置,然后单击“确定”...

怎么将一个工作表拆分成多个工作表
答:以WPS 2019版本为例:关于怎么将一个工作表拆分成多个工作表,您可使用WPS参考下述步骤完成操作:1、打开「表格(Excel)」文档;2、点击「数据-拆分表格」;3、按需选择「把工作表按照内容拆分」或「把工作簿按照工作表拆分」使用即可。

如何把一个excel表格拆分成独立的excel文件?
答:1、一个excel表格,如下图,一个工作簿中有很多工作表; 2、将鼠标放置在需要拆分的工作表,右键鼠标,点击移动或复制工作表; 3、将选定工作表移至位置,选择新工作簿; 4、然后点击确定; 5、这时候,原来的工作表就单独成为新的工作簿了; 6、点击保存按钮(或使用快捷按键 Ctrl+S),找到保存位置后,点击保存就可以...