本文作者:office教程网

excel将一个工作表根据条件拆分成多个工作表图文教程

office教程网 2023-04-12 21:53:12
后台-系统设置-扩展变量-手机广告位-内容正文顶部
摘要: 下面脚本之家的朋友介绍excel将一个工作表根据条件拆分成多个工作表的方法,对于经常使用excel的朋友很有帮助,推荐到脚本之家,有需要的朋友可以过来参考一下,...
下面脚本之家的朋友介绍excel将一个工作表根据条件拆分成多个工作表的方法,对于经常使用excel的朋友很有帮助,推荐到脚本之家,有需要的朋友可以过来参考一下,希望能对大家有所帮助

本例介绍在excel中如何将一个工作表根据条件拆分成多个工作表。

注意:很多朋友反映sheets(i).delete这句代码出错,要注意下面第一个步骤,要拆分的数据工作表名称为“数据源”,而不是你新建工作簿时的sheet1这种。手动改成“数据源”即可。

操作步骤:

原始数据表如下(名称为:数据源),需要根据B列人员姓名拆分成每个人一个工作表。

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

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

如下图,粘贴下列代码在模块中:

复制内容到剪贴板
  1. Sub CFGZB()   
  2.   
  3.     Dim myRange As Variant   
  4.   
  5.     Dim myArray   
  6.   
  7.     Dim titleRange As Range   
  8.   
  9.     Dim title As String   
  10.   
  11.     Dim columnNum As Integer   
  12.   
  13.     myRange = Application.InputBox(prompt:="请选择标题行:", Type:=8)   
  14.   
  15.     myArray = WorksheetFunction.Transpose(myRange)   
  16.   
  17.     Set titleRange = Application.InputBox(prompt:="请选择拆分的表头,必须是第一行,且为一个单元格,如:“姓名”", Type:=8)   
  18.   
  19.     title = titleRange.Value   
  20.   
  21.     columnNum = titleRange.Column   
  22.   
  23.     Application.ScreenUpdating = False   
  24.   
  25.     Application.DisplayAlerts = False   
  26.   
  27.     Dim i&, Myr&, Arr, num&   
  28.   
  29.     Dim d, k   
  30.   
  31.     For i = Sheets.Count To 1 Step -1   
  32.   
  33.         If Sheets(i).Name <> "数据源" Then   
  34.   
  35.             Sheets(i).Delete   
  36.   
  37.         End If   
  38.   
  39.     Next i   
  40.   
  41.     Set d = CreateObject("Scripting.Dictionary")   
  42.   
  43.     Myr = Worksheets("数据源").UsedRange.Rows.Count   
  44.   
  45.     Arr = Worksheets("数据源").Range(Cells(2, columnNum), Cells(Myr, columnNum))   
  46.   
  47.     For i = 1 To UBound(Arr)   
  48.   
  49.         d(Arr(i, 1)) = ""  
  50.   
  51.     Next   
  52.   
  53.     k = d.keys   
  54.   
  55.     For i = 0 To UBound(k)   
  56.   
  57.         Set conn = CreateObject("adodb.connection")   
  58.   
  59.         conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName   
  60.   
  61.         Sql = "select * from [数据源$] where " & title & " = '" & k(i) & "'"  
  62.   
  63.         Worksheets.Add after:=Sheets(Sheets.Count)   
  64.   
  65.         With ActiveSheet   
  66.   
  67.             .Name = k(i)   
  68.   
  69.             For num = 1 To UBound(myArray)   
  70.   
  71.                 .Cells(1, num) = myArray(num, 1)   
  72.   
  73.             Next num   
  74.   
  75.             .Range("A2").CopyFromRecordset conn.Execute(Sql)   
  76.   
  77.         End With   
  78.   
  79.         Sheets(1).Select   
  80.   
  81.         Sheets(1).Cells.Select   
  82.   
  83.         Selection.Copy   
  84.   
  85.         Worksheets(Sheets.Count).Activate   
  86.   
  87.         ActiveSheet.Cells.Select   
  88.   
  89.         Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _   
  90.   
  91.                                SkipBlanks:=False, Transpose:=False   
  92.   
  93.         Application.CutCopyMode = False   
  94.   
  95.     Next i   
  96.   
  97.     conn.Close   
  98.   
  99.     Set conn = Nothing   
  100.   
  101.     Application.DisplayAlerts = True   
  102.   
  103.     Application.ScreenUpdating = True   
  104.   
  105. End Sub   
  106.   

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

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

怎么把lnternet网页数据导入excel?

怎么把lnternet网页数据导入excel?通过Excel的导入数据功能,用户可以将网页上的数据表资料导入Excel工作表,以便进一步加工处理成所需要的数据表。下面就教大家怎么导入数据表

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

8、注意:

1)原始数据表要从第一行开始有数据,并且不能有合并单元格;

2)打开工作簿时需要开启宏,否则将无法运行代码。

以上就是excel将一个工作表根据条件拆分成多个工作表图文教程,希望能对大家有所帮助!


上一篇:excel中复制粘贴时的粘贴选项按钮怎么设置来去除? 下一篇:怎么把lnternet网页数据导入excel?

相关文章

  • Excel教程 Excel表格下拉列表怎么设置

    Excel表格下拉列表怎么设置呢?很多用户对此还不是很清楚,小编这里就给大家带来有关Excel表格下拉列表怎么设置的回答,希望能够对大家有所帮助。......

    2023-01-18

    详细阅读
  • Excel教程 Excel如何打印选定区域

    Excel如何打印选定区域呢?很多用户对此还不是很清楚,小编这里就给大家带来有关Excel如何打印选定区域的回答,希望能够对大家有所帮助。......

    2023-01-18

    详细阅读
  • Excel教程 Excel怎么设置英文首字母大写

    Excel怎么设置英文首字母大写?Excel中输入英文首字母大写怎么操作?当我们需要将Excel表格中的英文单词,把首字母全部大写,该怎么操作呢,怎么将Excel中英文首字母大写,Excel怎么设置英文首字母大写,下面就和小编一起来看看吧!......

    2023-01-18

    详细阅读
  • Excel教程 Excel怎么给所有的数字加10

    Excel怎么给所有的数字加10?Excel数字怎么全部加10?怎么全部加1?当我们在使用Excel时,所有的数字都少10,或者1,该怎么给所有的数字都 10、 1呢,Excel怎么给所有的数字加10,EXcel数字怎么全部加10,下面就和小编一起来看看吧!......

    2023-01-18

    详细阅读
  • Excel教程 Excel怎么设置日期自动更新

    Excel怎么设置日期自动更新?Excel怎么设置日期自动更新?当我们Excel表格中的日期需要实时更新到最新日期,该怎么设置呢,怎么将Excel表格日期自动更新到最新日期,Excel怎么设置日期自动更新,下面就和小编一起来看看吧!......

    2023-01-18

    详细阅读

excel sumproduct函数的使用方法及实例

这篇文章主要介绍了excel sumproduct函数的使用方法及实例,需要的朋友可以参考下

后台-系统设置-扩展变量-手机广告位-内容正文底部
未经允许不得转载:

作者:office教程网,原文地址:excel将一个工作表根据条件拆分成多个工作表图文教程发布于2023-04-12 21:53:12
转载或复制请以超链接形式并注明出处 演示站

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

留言与评论(共有 0 条评论)
   
验证码: