zoukankan      html  css  js  c++  java
  • excel表格 按行数 或者其他文字拆分为多个文件

    说明: 此方法用于将大的excel根据某一列里面的内容,拆分为多个子文件。我的需求是 将文件里面的记录每100条拆分为1个文件。因此需要手动添加分类列。

       1 手动添加分类列 需要用到函数  =ROUNDUP(ROW(A1)/100,0)  ,在(A1,2)里面写如公式,表示没100行变一下序号。

        

      2 分类列完成之后 .保存,按alt + f11键打开VBE窗口

      

      3 选择插入->模块粘贴下面代码到编辑器中

      

      代码:

    Sub 保留表头拆分数据为若干新工作簿()
     Dim arr, d As Object, k, t, i&, lc%, rng As Range, c%
     c = Application.InputBox("请输入拆分列号", , 4, , , , , 1)
     If c = 0 Then Exit Sub
     Application.ScreenUpdating = False
     Application.DisplayAlerts = False
     arr = [a1].CurrentRegion
     lc = UBound(arr, 2)
     Set rng = [a1].Resize(, lc)
     Set d = CreateObject("scripting.dictionary")
     For i = 2 To UBound(arr)
     If Not d.Exists(arr(i, c)) Then
    Set d(arr(i, c)) = Cells(i, 1).Resize(1, lc)
     Else
    Set d(arr(i, c)) = Union(d(arr(i, c)), Cells(i, 1).Resize(1, lc))
     End If
     Next
     k = d.Keys
     t = d.Items
     For i = 0 To d.Count - 1
     With Workbooks.Add(xlWBATWorksheet)
    rng.Copy .Sheets(1).[a1]
     t(i).Copy .Sheets(1).[a2]
     .SaveAs Filename:=ThisWorkbook.Path & "" & k(i) & ".xls"
     .Close
     End With
     Next
     Application.DisplayAlerts = True
     Application.ScreenUpdating = True
     MsgBox "完毕"
    End Sub
    

      代码放入之后如图:

      4 保存后,点击 文件-选项:

       5 点击自定义功能区-开发工具 ,打勾,点击确定:

      6  选择开发工具->插入->表单控件(按钮(窗体控件))

     

      7按住鼠标左键不动然后在excel中划定一个按钮区域,然后会自动弹出的窗口,选择刚才保存的宏,点击确定

       8 鼠标从按钮上面移开  ,然后点击按钮输入要列号,就是根据哪列的数据进行拆分文件,根据不同的序号拆分成不同的文件

      9点击确定后,如果弹出完毕提示框代表拆分完成

     原文引用地址:http://www.pianshen.com/article/845378182/

  • 相关阅读:
    Codevs 2296 仪仗队 2008年省队选拔赛山东
    Codevs 1535 封锁阳光大学
    Codevs 1069 关押罪犯 2010年NOIP全国联赛提高组
    Codevs 1218 疫情控制 2012年NOIP全国联赛提高组
    Codevs 1684 垃圾陷阱
    洛谷 P1108 低价购买
    Vijos P1325桐桐的糖果计划
    Codevs 3289 花匠 2013年NOIP全国联赛提高组
    Codevs 2611 观光旅游(floyed最小环)
    C语言基础之彩色版C语言(内含linux)
  • 原文地址:https://www.cnblogs.com/jungege/p/10695386.html
Copyright © 2011-2022 走看看