关闭→
当前位置:科普经验站>IT科技>excel怎么将一个工作表根据条件拆分成多个工作簿

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

科普经验站 人气:1.3W

For i = 0 To UBound(k) - 1 这行改成 for i=Lbound(k) to ubound(k) 就行了

下面介绍一下excel将一个工作表根据条件拆分成多个工作簿的方法。

方法

原始数据如下图

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

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

按Alt+F11进入VBE界面。

excel将一个工作表根据条件拆分成多个工作表方法详见:https://jingyan.baidu.com/article/c45ad29cd48857051753e285.html

excel怎么将一个工作表根据条件拆分成多个工作簿 第2张

点击“插入”,选择“模块”

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

excel怎么将一个工作表根据条件拆分成多个工作簿 第3张

双击模块

excel怎么将一个工作表根据条件拆分成多个工作簿 第4张

在空白窗口粘贴以下代码:

一个Excel工作簿中的多个工作表想拆分成独立表格,首先打开表格找到并选中表格右下角的表一,然后,点击右键选择“移动或复制工作表”,然后,打开工作薄点击新工作薄,然后,点击确定,然后点击保存,打开保存界面后再点击“保存”(喜欢保存到哪里

Sub CFGZB()

可以按下面的步骤:(1) 在要复制的sheet标签上点鼠标右键;(2) 弹出的窗口中选"移动或复制工作表";(3) 弹出的窗口中点下拉框,然后选"(新工作簿)";(4) 如果是复制,勾选"建立副本",如果是剪切,不勾选该选项, 确定(5) 保存,这样,一个新的e

    Dim myRange As Variant

1、打开需要编辑的Excel文档。如图所示,工作簿下方有很多工作表。现在需要将这些工作表单独拆分开成一个个工作簿。 2、右键任意一个工作表标签,在弹出的下拉列表中选择查看代码。即弹出代码窗口。如下图所示。 3、点击菜单插入,模块在弹出的

    Dim myArray

我测试了一下,没有问题,你看看你的标签名称是不是有问题,这个必须是“数据源”三个字,没有任务其他的字符。

    Dim titleRange As Range

Excel是职场办公人员很常见的一种数据处理工具。excel应用广泛。Excel表格制作、Excel函数大全、Excel财务报表分析等等。 想要精通Excel数据处理能力,然而大部分培训机构的课程又非常贵,这里推荐一个免费的在线视频教程网站:虎课网-专注在线

    Dim title As String

Excel是职场办公人员很常见的一种数据处理工具。excel应用广泛。Excel表格制作、Excel函数大全、Excel财务报表分析等等。 想要精通Excel数据处理能力,然而大部分培训机构的课程又非常贵,这里推荐一个免费的在线视频教程网站:虎课网-专注在线

    Dim columnNum As Integer

如果经常做这样的表格,建议你下个“方方格子”,去百度下载安装,安装完后再打开表格就在你的表任务栏了,可以对工作表和工作簿进行拆分、汇总、合并等等,对数据分析帮助很大,一键就能拆分、合并等

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  myRange = Application.InputBox(prompt:="请选择标题行:", Type:=8)

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  myArray = WorksheetFunction.Transpose(myRange)

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  Set titleRange = Application.InputBox(prompt:="请选择拆分的表头,必须是第一行,且为一个单元格,如:“姓名”", Type:=8)

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  title = titleRange.Value

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  columnNum = titleRange.Column

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  Application.ScreenUpdating = False

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  Application.DisplayAlerts = False

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  Dim i&, Myr&, Arr, num&

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  Dim d, k

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  For i = Sheets.Count To 1 Step -1

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      If Sheets(i).Name <> "数据源" Then

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

          Sheets(i).Delete

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      End If

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  Next i

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  Set d = CreateObject("Scripting.Dictionary")

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  Myr = Worksheets("数据源").UsedRange.Rows.Count

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  Arr = Worksheets("数据源").Range(Cells(2, columnNum), Cells(Myr, columnNum))

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  For i = 1 To UBound(Arr)

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      d(Arr(i, 1)) = ""

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  Next

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  k = d.keys

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  For i = 0 To UBound(k) 

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      Set conn = CreateObject("adodb.connection")

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      Sql = "select * from [数据源$] where " & title & " = '" & k(i) & "'"

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      Dim Nowbook As Workbook

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      Set Nowbook = Workbooks.Add

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      With Nowbook

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

          With .Sheets(1)

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

              .Name = k(i)

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

              For num = 1 To UBound(myArray)

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

                  .Cells(1, num) = myArray(num, 1)

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

              Next num

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

              .Range("A2").CopyFromRecordset conn.Execute(Sql)

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

          End With

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      End With

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      ThisWorkbook.Activate

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      Sheets(1).Cells.Select

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      Selection.Copy

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      Workbooks(Nowbook.Name).Activate

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      ActiveSheet.Cells.Select

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

                             SkipBlanks:=False, Transpose:=False

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      Application.CutCopyMode = False

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      Nowbook.SaveAs ThisWorkbook.Path & "'" & k(i)

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      Nowbook.Close True

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

      Set Nowbook = Nothing

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  Next i

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  conn.Close

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  Set conn = Nothing

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  Application.DisplayAlerts = True

 

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub 拆分()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '看总表有多少列For i = LastColumn To 4 Step -2 '

  Application.ScreenUpdating = True

End Sub

excel怎么将一个工作表根据条件拆分成多个工作簿 第5张

返回Excel工作表界面,点击“开发工具”,选择“插入”,点击“按钮”

excel怎么将一个工作表根据条件拆分成多个工作簿 第6张

指定宏。

excel怎么将一个工作表根据条件拆分成多个工作簿 第7张

点击插入的按钮,根据提示选择标题行。

excel怎么将一个工作表根据条件拆分成多个工作簿 第8张

根据提示,选择要拆分的列标题,以“姓名”为例。

excel怎么将一个工作表根据条件拆分成多个工作簿 第9张

再次点击确定后,宏会自动运行。运行完毕后工作簿所在的同路径下会出现以每个人名命名的独立工作簿。打开每个单个工作簿就可以看到每个人自己的数据记录。

excel怎么将一个工作表根据条件拆分成多个工作簿 第10张

扩展阅读,以下内容您可能还感兴趣。

excel2016怎样将一个工作表根据条件拆分成多个工作表?

我的也是同样问题,删除前面的空格会出现编译错误,缺少表达式。

excel vba如何将一个多个工作表的工作簿按一个筛选条件去分成多个工作簿?

如果经常做这样的表格,建议你下个“方方格子”,去百度下载安装,安装完后再打开表格就在你的表任务栏了,可以对工作表和工作簿进行拆分、汇总、合并等等,对数据分析帮助很大,一键就能拆分、合并等

追问你好,这是可以按条件去拆分的吗?我用的是WPS,会员有这个功能,但是只是以多个工作表去拆分成多个工作簿……追答可以按条件拆分,拆分字段可选,可以先把一个表拆成一簿多表,再由一簿多表分成多簿一表

如何快速的把一个EXCEL工作簿分成多个工作表

要用VBA处理:设你的总表的名称 为“总表”,请按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行

Sub 拆分()

LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column    '看总表有多少列

For i = LastColumn To 4 Step -2    '先从最后两列开始,一路向左

    Range(Columns(i - 1), Columns(i)).Select    '选择两列

    Selection.Cut    '剪切

    Sheets.Add After:=ActiveSheet    '增加 一个工作表

    ActiveSheet.Paste    '粘贴

    ActiveSheet.Name = Cells(1, 2)    '将表名称改为B2的内容

    Sheets("总表").Select    '回到总表

Next    '下两列

ActiveSheet.Name = Cells(1, 2)    '将总表名称也改为B2内容

End Sub

已测试通过。

追问您好,如果列中间有空白列怎么办?

excel将一个工作簿根据A列数据拆分成多个工作表

我测试了下,没有任何问题。可能是你的日期列的格式有问题,把日期列的单元格格式要改成文本格式就可以了,如果是日期类型就不行了。追问谢谢回答,不过我试了多次,发现如果列中数据是数字开头的就不行,比如0或者*07之类,如果数字前面有个字母,比如A0,B* 就可以。

请问是哪步出了问题?怎么修改下

TAG标签:#excel #