吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 20597|回复: 336
收起左侧

[Windows] Execl拆分工具

    [复制链接]
BigCong 发表于 2022-4-13 15:40
最近看到公司同事使用Execl自带的分拆工具拆分文件,居然要八块一个月!还不好用。
于是本着自己动手丰衣足食的原则弄了个拆分程序
1649833522(1).jpg

使用教程如下:
1.选择文件里面选择要拆分的文件
2.加载需要拆分的样式和模板
3.然后选择源文件需要被拆分的内容开始的行数,如下图,开始的行数就是2
2.jpg
4.选择源文件需要被拆分的内容开始的列数,如上图,开始的列可以为2,也可以为3,最好与模板的列数保持一致。
   然后选择拆分的文件以哪一列命名,案例中我选择的是按原表中的名称字段。
5.选择模板插入数据的位置,如下图模板数据开始位置就是A2 :
3.jpg
6.然后点击拆分,结果会自动生成到运行目录下’拆分文件‘目录中(如果没有这个文件夹会自动新建):
4.jpg

5.jpg
下载地址:https://wwz.lanzoul.com/iNV99034h23a        解压密码:52pojie


免费评分

参与人数 99吾爱币 +85 热心值 +92 收起 理由
odinchu + 1 我很赞同!
deanlau + 1 谢谢@Thanks!
duoqinger521 + 1 + 1 我很赞同!
nxkjt + 1 + 1 谢谢@Thanks!
折原臨也丶 + 1 + 1 热心回复!
Crush1 + 1 + 1 谢谢@Thanks!
_青灯つ + 1 + 1 谢谢@Thanks!
sjj2023 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
xionghuaxin + 1 谢谢@Thanks!
唐三没藏 + 1 + 1 很实用的小工具,赞一个
阿迦南 + 1 + 1 谢谢@Thanks!
fengshengshou + 1 + 1 谢谢@Thanks!
jie03kyky110 + 1 我很赞同!
z7138910 + 1 + 1 热心回复!
zaizai12 + 1 + 1 热心回复!
pannide8769 + 1 + 1 谢谢@Thanks!
13143191818 + 1 + 1 热心回复!
bowbow1 + 1 + 1 谢谢@Thanks!
zzy17468 + 1 + 1 谢谢@Thanks!
Oran + 1 + 1 热心回复!
speedfly2788 + 1 + 1 我很赞同!
wyy81061 + 1 + 1 我很赞同!
bestplay200 + 1 + 1 我很赞同!
mhaitao + 1 + 1 我很赞同!
你脸好大啊 + 1 + 1 我很赞同!
tevins + 1 谢谢@Thanks!
guiyidegui + 1 + 1 用心讨论,共获提升!
Guo-Guo + 1 + 1 感谢大佬分享,不过execl单词是不是拼错了,还是另有深意
grrr_zhao + 1 + 1 谢谢@Thanks!
18042545 + 1 谢谢@Thanks!
dreamcrazy + 1 + 1 我很赞同!
爱窜洞的闰土 + 1 + 1 谢谢@Thanks!
canty胖胖 + 1 + 1 谢谢@Thanks!
kx1408 + 1 + 1 我很赞同!
cqh200 + 1 + 1 谢谢@Thanks!
chrisdong919 + 1 + 1 我很赞同!
gaziqian + 1 谢谢@Thanks!
woxobo + 1 + 1 谢谢@Thanks!
w19890614 + 1 + 1 谢谢@Thanks!
wulanzhongxue + 1 + 1 谢谢@Thanks!
tobiasaxzc + 1 + 1 谢谢@Thanks!
twl2018 + 1 + 1 谢谢@Thanks!
yx69 + 1 + 1 我很赞同!
hostclsecho + 1 + 1 我很赞同!
GoodDoctor + 1 + 1 谢谢@Thanks!
kengtianxia + 1 + 1 我很赞同!
benito + 1 + 1 我很赞同!
lj3572996 + 1 + 1 我很赞同!
adoudou + 1 + 1 热心回复!
liu1913 + 1 谢谢@Thanks!
RobinMaas + 1 + 1 谢谢@Thanks!
自去经心 + 1 鼓励转贴优秀软件安全工具和文档!
喃喃自语 + 1 谢谢@Thanks!
bym + 1 谢谢@Thanks!
beibeibei + 1 + 1 我很赞同!
38342175 + 2 + 1 你可以卖给你同事4元一个月
SDQ + 1 + 1 谢谢@Thanks!
jie520yun + 1 + 1 我很赞同!
後天 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
okgjkk + 1 + 1 热心回复!
viconly + 1 + 1 谢谢@Thanks!
powehi + 1 + 1 谢谢@Thanks!
刘留留 + 1 + 1 用心讨论,共获提升!
yf668888 + 1 谢谢@Thanks!
khkh56 + 1 + 1 谢谢@Thanks!
gxsky + 1 开始没看懂,幸好楼主提供了例子,很实用的小工具
永恒亦云 + 1 + 1 我很赞同!
komakoma + 1 + 1 谢谢@Thanks!
cn2134556 + 1 谢谢@Thanks!
Zhangxz1980 + 1 谢谢@Thanks!
白皇吾猫 + 1 + 1 谢谢@Thanks!
学学习系 + 1 + 1 我很赞同!
外星文明 + 1 + 1 谢谢@Thanks!
Voo12 + 1 我很赞同!
jiang5886 + 1 谢谢@Thanks!
fy2022 + 1 + 1 我很赞同!
枫叶菜刀 + 1 + 1 我很赞同!
hj5418 + 1 + 1 我很赞同!
还没②够 + 1 谢谢@Thanks!
wj1994 + 1 热心回复!
gblwang + 1 + 1 我很赞同!
mixsen + 1 + 1 我很赞同!
fukepeng + 1 + 1 谢谢@Thanks!
zpolar + 1 + 1 我很赞同!
7YellowDucks + 1 + 1 热心回复!
MOMOMOMO + 1 谢谢@Thanks!
yanglinman + 1 谢谢@Thanks!
CoderTonyChan + 1 + 1 有反向操作的吗?
chunjiahua + 1 + 1 谢谢@Thanks!
tyz1234 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
ximen_qing + 1 + 1 谢谢@Thanks!
lyx12342002 + 1 + 1 我很赞同!
bg_yx + 1 我很赞同!
Leidus + 1 + 1 谢谢@Thanks!
zrf1980 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
华夏将军孙武 + 1 + 1 谢谢@Thanks!
yaan + 1 + 1 我很赞同!
房州波哥 + 1 + 1 我很赞同!
yuanacer + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

lizhipei78 发表于 2022-4-14 08:10
gcb119 发表于 2022-4-13 16:38
支持楼主继续优化:
excel必备工具拆分规则大概有两种模式
拆分的一般理解为对行的拆分,列的拆分参数可 ...

都是为了纯粹的拆分,都不保持原来的行列宽高、页面距离,拆分出来没法看,不能直接打印(效果不好)。目前看到能保持原格式(即模板)拆分的是Excel工作圈插件(exe)版本的,方方格子好像也可以。但是拆分的原理好像是复制工作表,然后删除不符合的,这样子速度好慢。但是楼主这种以值的方式拆分到模板中的思路拆分,速度是很快的。我自己写代码也是这种思路。

我用的代码
Sub 按列拆分成工作薄()
    t = Timer
    dir_name = ThisWorkbook.Path & "\生成的表格\"
    If Dir(dir_name, vbDirectory) = "" Then
        MkDir (dir_name)
    End If
    Sheets("数据源").Select
    On Error Resume Next
    Application.ScreenUpdating = False '停止屏幕刷新
    Application.DisplayAlerts = False '停止警告
    Dim r1%, r2%, arr, ws As Worksheet, d As Object, brr()
    Set d = CreateObject("scripting.dictionary")
    arr = Range("a1").CurrentRegion
    ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
    For i = 1 To UBound(arr)
        d(arr(i, 5)) = "" '要分列在第5列
    Next i
    a = d.Keys
    For i = 1 To d.Count - 1
        s = 0
        For j = 1 To UBound(arr)
            If arr(j, 5) = a(i) Then '要分列在第5列
                s = s + 1
                For k = 1 To UBound(arr, 2)
                    brr(s, k) = arr(j, k)
                Next k
            End If
        Next j
        Sheets("模板").Range("a1") = "2021年 " & a(i) & " 享受政策一览表"
        Sheets("模板").Range("a4").Resize(s, UBound(brr, 2) - 1) = brr '复制内容到分表中
        '复制“模板”工作表
        Sheets("模板").Copy
        '删除空白行
        r2 = Range("A200").End(3).Row
        Range("D200:A" & r2 + 1).Clear
        'Range("a5:a200").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
        'r1 = Range("a200").End(3).Row
        'Range(Cells(r1 + 1, 1), Cells(200, 4)).Clear
        '工作簿另存为
        ActiveWorkbook.Close SaveChanges:=True, Filename:=dir_name & a(i) & ".xlsx"
        '清空模板数据
        Sheets("模板").Range("A4:F200").ClearContents
    Next i
    Application.ScreenUpdating = True '开启屏幕刷新
    Application.DisplayAlerts = True '开启删除警告
    t = Timer - t
    MsgBox "完成,用时" & t & "秒"
End Sub

免费评分

参与人数 4吾爱币 +3 热心值 +4 收起 理由
aikexue + 1 + 1 热心回复!
zcm_0344 + 1 + 1 我很赞同!
cxh0104 + 1 + 1 我很赞同!
yekenyh + 1 我很赞同!

查看全部评分

maxtm 发表于 2022-4-18 08:48
mystictaki 发表于 2022-4-13 15:47
shiym3288 发表于 2022-4-13 15:49
多谢分享。下来收藏
hfxiang 发表于 2022-4-13 15:55
这个工具合适于人力资源部使用。感谢分享
huzp 发表于 2022-4-13 15:58
强大,很不错,支持
wohushan 发表于 2022-4-13 16:04
感谢楼主提供
yj2002525758 发表于 2022-4-13 16:08
感谢楼主无私奉献
wqccwang 发表于 2022-4-13 16:11
谢谢  下载备用
zxdjadl 发表于 2022-4-13 16:15
感谢楼主,下载试试!
imcoder 发表于 2022-4-13 16:25
好像很厉害
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 06:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表