怎样将一个EXCEL文件分割成几个

怎样将一个EXCEL文件分割成几个,数据类似如下:
日期 代码 简称 价格
19991230 600782 新华股份 3.039777867
20000107 600782 新华股份 3.159961989
20000114 600782 新华股份 3.040762999
20000121 600782 新华股份 3.05440676
20000128 600782 新华股份 3.075476475
20000218 600782 新华股份 3.108114082
20000225 600782 新华股份 3.211726328
20000303 600782 新华股份 3.237045747
20000310 600782 新华股份 3.155590918
20000317 600782 新华股份 3.128092981
20000324 600782 新华股份 3.182344612
20000331 600782 新华股份 3.24586823
20000407 600782 新华股份 3.264869702
20000414 600782 新华股份 3.264865882
20000421 600782 新华股份 3.298980069
20000428 600782 新华股份 3.264816218
20000512 600782 新华股份 3.175642592
20000519 600782 新华股份 3.215425881
20010216 600855 PT北旅 2.900344091
20010223 600855 PT北旅 2.782557617
20010302 600855 PT北旅 2.831346897
20010309 600855 PT北旅 2.830155733
20010316 600855 PT北旅 2.801133661
20010323 600855 PT北旅 2.781932433
20010330 600855 PT北旅 2.813328713
20010406 600855 PT北旅 2.824777865
20010413 600855 PT北旅 2.853713537
20010420 600855 PT北旅 2.842004004
20010427 600855 PT北旅 2.837281528
20010622 600855 PT北旅 2.886352581
20010629 600855 PT北旅 2.935276075
20010706 600855 PT北旅 2.98396329
20010713 600855 PT北旅 2.98396329
20010720 600855 PT北旅 2.954404943
20020809 600855 航天长峰 2.501198219
20020816 600855 航天长峰 2.501198219
20020823 600855 航天长峰 2.52008877
20020830 600855 航天长峰 2.503679335
20020906 600855 航天长峰 2.50285298
20020913 600855 航天长峰 2.537823209
20020920 600855 航天长峰 2.520892971
20020927 600855 航天长峰 2.517631954
20021011 600855 航天长峰 2.447533562
20021018 600855 航天长峰 2.473449601
20021025 600855 航天长峰 2.467463736
20021101 600855 航天长峰 2.47600044
20021108 600855 航天长峰 2.475150883
20021115 600855 航天长峰 2.397304189
20021122 600855 航天长峰 2.265734369
20021129 600855 航天长峰 2.297743391
20021206 600855 航天长峰 2.242378509
20021213 600855 航天长峰 2.244521564
20021220 600855 航天长峰 2.273042991
20000324 600711 雄震集团 3.036375052
20000331 600711 雄震集团 3.090287623
20000407 600711 雄震集团 3.053137601
20000414 600711 雄震集团 2.992868176
20000421 600711 雄震集团 3.003169548
20000428 600711 雄震集团 2.968828593
20000512 600711 雄震集团 2.940990936
20000519 600711 雄震集团 2.987367385
20000526 600711 雄震集团 3.009768306
20000602 600711 雄震集团 3.018711224
20000609 600711 雄震集团 3.050831068
20000616 600711 雄震集团 3.069614506
20000623 600711 雄震集团 3.062250085
20000630 600711 雄震集团 3.022252483
20000707 600711 雄震集团 2.991628866
20000714 600711 雄震集团 2.979968678
20000721 600711 雄震集团 3.018691678
20000728 600711 雄震集团 3.044465293
20000804 600711 雄震集团 3.022237876
20000811 600711 雄震集团 3.105590659
我有五六万行,请问如何按代码分割一个,一个代码放到一个文件里面.
谢谢!
首先,谢谢两位的回答,不过还是没有解决,你们这样的方法还是很难完成,不过还是谢谢你们!

准备工具/材料:装有windows 10的电脑一台,Microsoft Office 家庭和学生版 2016 excel软件。

1、在excel加载项中选择方形网格,然后选择汇总和拆分功能。  

2、从下拉菜单中选择拆分工作簿。  

3、设置要拆分的工作表和要保存的位置,然后单击“确定”。  

4、操作完成后,会有提示,可以直接查看文件。  

5、可以在指定的文件夹中看到拆分表。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-05

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

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

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

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

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

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

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

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

本回答被网友采纳
第2个回答  推荐于2017-10-07
这个方法很简单,你可以采用MID函数,因为你的代码值和串都是固定的,所以用MID将会很简单.

比如你要取20000623 600711 雄震集团 3.062250085 中的第一个代码"20000623"假设这个地段在A1你可以输入=MID(A1,1,8).

要取字段"600711"可以输入=MID(A1,10,6)应为A1字段中6前有个空格.

MID函数的原理就是在一个字段中取某些连续的位置.

依次类推,你可以试试看本回答被提问者采纳
第3个回答  2015-05-16
一、假设按工作表名称分割。
1、手动复制工作表并另存为文件。
2、用VBA代码一次批量搞定。
二、按某一列分割。
1、手动复制并另存为文件。
2、VBA代码一次批量搞定。
第4个回答  2020-07-29

数据文件(EXCEL,CSV,TXT)的分割使用Data.olllo数据助手,可以按照分割为任意个文件,也可以按照关键字来分割,比如里面有字段“城市”,可以按照各个城市来分割文件。

相似回答