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/

原文地址:https://www.cnblogs.com/jungege/p/10695386.html

时间: 2024-10-28 18:19:20

excel表格 按行数 或者其他文字拆分为多个文件的相关文章

用VBA计算WPS 表格ET EXCEL中的行数和列数的多重方法

用VBA计算WPS 表格ET EXCEL中的行数和列数 每种方法中上面的是Excel的行数,下面的是Excel的列数. 方法1: ActiveSheet.UsedRange.Rows.Count ActiveSheet.UsedRange.Columns.Count 缺点:有时可能会比实际数大一些,原因是如果你把最后几行(列)数据清除后(非整行或整列删除), 用这个命令仍返回未清除前的值.就是说现在虽然是空的,但是你曾经用过也算你的. 方法2: ActiveSheet.Range("A65535

freemarker导出word——让表格数据行数 列数自动变化

行数.列数变化只需定义一个List<List<T>> freemarker遍历的话,只需要使用freemarker的标记性语言<#list report.qc_third_agentTable as  table2_tr>遍历即可,如图 实现的效果 freemarker导出word--让表格数据行数 列数自动变化,布布扣,bubuko.com

如何让一个字数不定,行数不定的文字居中?

这两天写页面的时候,遇到一个问题:如何让一段行数和字数不定的文字居于区块的中央 下面是我的方法,可能有点麻烦. 如果路过的各位前辈,有更好的方法,还请在留言中指出.非常感谢. *** 结构 *** <div class="item"> <div class="pic_wrapper"> <img src="https://dummyimage.com/120.png/09f/fff" alt="作者的头像&

Excel的最大行数

使用Excel2007或Excel2010,在“另存为” 菜单中可以选择为“Excel 07-2003 工作薄”,从中我们可以看出,到了2007版以后,存储格式变了,简单一点从扩展名便可以看出,一个是.xls,一个是.xlsx,差异自己去体会,因为对于我来说,Excel用得相当少.上课的时候使用PPT演示文档,内容相同,PPT2007下的文档只有450KB左右,然而PPT2003却达到了4MB,真不能解释,有待以后认真分析. Excel最多可存多少行,多少列?查到的资料如下: Excel 07-

java主界面表格(设置行数和只读)(1)2018.8.23

package example; import java.awt.BorderLayout;import java.awt.Color;import java.util.Vector; import javax.swing.AbstractButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.sw

Java操作excel表格

最近老师布置了个任务,用Java对excel后缀名为xlsx的文件进行简单的增,删,改,查操作:虽说是个简单的程序,可作为刚接触的我来说还是有些磕磕碰碰.不过好在还是完成了,进行一个简单的总结. 首先导入了一个poi.jar 网上有很多这个资源可以下载 XSSFSheet sheet=null;XSSFWorkbook book=null; 一:查  (查找本地指定位置的excel表格,在控制台输出) public void print_excel(){ //获取excel表格的行数 int l

JAVA使用POI获取Excel的列数与行数

Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能. 下面这篇文章给大家介绍了JAVA使用POI获取Excel列数和行数的方法,有需要的朋友们可以参考借鉴,下面来一起看看吧. 前言 报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用性,不方便用户进行个性化编辑.Java程序由于其跨平台特性,不能直接操纵Excel.因此,本文探讨一下POI视线Java程序

python读取excel表格的数据

1.在Windows命令行中安装第三方模块xlrd,先切到python安装目录(Python34),然后切到Scripts,然后输入命令easy_install xlrd按回车进行安装 安装完成 2.新建一个excel表,然后保存,造数据 3.编写python脚本 #utf-8 import xlrd     #导入第三方模块xlrd excel = xlrd.open_workbook('C:\\表格.xlsx')       #打开目标表格文件(填写路径) sheet = excel.she

sqlite expert导入excel表格 (包括使用问题、以及把 一个表的数据插入到另一个表中)

一.sqlite导入excel 1.打开要导入的excel --- 另存为(2007版点击左上角OFFICE图标即可找到) --- 保存类型:CSV类型 (提示什么不兼容什么的,一律点确定.) 2.打开sqlite expert ,选择建好的数据库文件(或者是导入的已存在的db文件,或者是自己新建一个.db数据库文件). 右击文件名---选择最后一个import text file(CSV,TSV) 3.(如果没有建过和这个excel名相同的表)右边Destination选择第一项new tab