ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3087|回复: 9

[分享] 将汇总表或者其他文件内容按照模板要求填写并生成对应文件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-12-16 08:48 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
将汇总表里的内容分到模板上,并根据要求保存为文件。
最近有人咨询这样的问题,所以整理在这里。
sheets(2)表为汇总表
sheets(1)为模板表。也可以是文件,如果要调取该文件,在打开状态下可以使用workbooks(“文件名”)
Sub s111()
    For j = 2 To Sheets(2).Cells(Rows.Count, 1).End(3).Row
        Sheets(1).Cells(2, 2) = Sheets(2).Cells(j, 1)
        Sheets(1).Cells(2, 4) = Sheets(2).Cells(j, 2)
        Sheets(1).Cells(3, 2) = Sheets(2).Cells(j, 3)
        Sheets(1).Cells(3, 4) = Sheets(2).Cells(j, 4)
        Sheets(1).Cells(4, 2) = Sheets(2).Cells(j, 5)
        strfile = ThisWorkbook.Path & "\" & Sheets(2).Cells(j, 1) & "_" & Sheets(2).Cells(j, 2) & ".xls"‘设置保存文件的名称
        ThisWorkbook.Sheets(1).Select
        ThisWorkbook.Sheets(1).Copy
        ActiveWorkbook.SaveAs Filename:= _
            strfile, FileFormat:=xlNormal _
            , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
            
        ActiveWorkbook.Close False
    Next j
End Sub

其中也可以根据需要,将模板进行打印出来。


按照模板保存表格内容为其他文件.zip

11.47 KB, 下载次数: 434

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-12-17 09:01 | 显示全部楼层
非常实用的功能,学习了!谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-12-17 09:40 | 显示全部楼层
飞向新的天空 发表于 2013-12-17 09:01
非常实用的功能,学习了!谢谢!

有用就好,最近确实不少人问这样的问题,所以整理了下

TA的精华主题

TA的得分主题

发表于 2013-12-26 07:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这个很实用

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-12-26 07:30 | 显示全部楼层
kszcs 发表于 2013-12-26 07:29
这个很实用

有一些实用的代码可以作为案例保存,方便以后直接使用的

TA的精华主题

TA的得分主题

发表于 2013-12-26 09:15 | 显示全部楼层
liulang0808 发表于 2013-12-26 07:30
有一些实用的代码可以作为案例保存,方便以后直接使用的

是呀,你们高手的东西很值得留存

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-12-26 11:57 | 显示全部楼层
kszcs 发表于 2013-12-26 09:15
是呀,你们高手的东西很值得留存

其实,你自己日常处理问题的代码也要注意保留,处理多了,就有规律可循了

TA的精华主题

TA的得分主题

发表于 2021-12-7 20:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

非常实用的功能

TA的精华主题

TA的得分主题

发表于 2021-12-8 08:23 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-5-31 16:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请教老师,前面这个你如果要改成由自己选择位置而不是固定位置,同时对同一个字段对应的值自动往选好后的位置下面一行或一列逐个添加呢?

另外:下面的VBA,如果遇到Sheets("数据").Cells(j, 4)有同样的值,能否把数据追加在后面而不是另外再起一个新名字的表呢?谢谢老师指点。
Sub 批量复制模板并添加数据()
Application.DisplayAlerts = False
Application.ScreenUpdating = False

For j = 2 To Sheets("数据").Cells(Rows.Count, 1).End(3).Row
    Sheets("模板").Copy after:=Sheets("模板") '在表“模板”后新建一张跟“模板”表内容一致的表(after 可以根据需要修改为before)
    '以下赋值可以根据自己需要进行计算等复杂操作
    Sheets("模板 (2)").Cells(2, 1) = Sheets("数据").Cells(j, 1)
    Sheets("模板 (2)").Cells(2, 2) = Sheets("数据").Cells(j, 2)
    Sheets("模板 (2)").Cells(2, 3) = Sheets("数据").Cells(j, 3)
    Sheets("模板 (2)").Cells(2, 4) = Sheets("数据").Cells(j, 4)
    Sheets("模板 (2)").Name = Sheets("数据").Cells(j, 1)       '修改新建表的表名为对应“数据”表的对应行名称
Next j

Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 08:26 , Processed in 0.033697 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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