ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 怎么将word文档按20页保存?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-2-11 21:17 | 显示全部楼层 |阅读模式
每个月都有一个word文档,,里面有600页的样子,如何使用VBA,将这个word文档,按每20页保存为一个文件。文件名可以按循环的数字来命名就行了

比如1-20页的内容   为1.docx    21-40页的内容保存为2.docx

注意有页脚,与页眉都需要。。。


http://club.excelhome.net/thread-835582-1-1.html?jdfwkey=pfiir2

看了这里的求助,我把2改成20根本不行。。所以不知道如何操作了。

TA的精华主题

TA的得分主题

发表于 2015-2-11 21:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
有个思路,供你参考。倒起剪切。如共613页,那就613-601为第31号文件。余下的类推。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-2-11 22:02 | 显示全部楼层
thunor 发表于 2015-2-11 21:48
有个思路,供你参考。倒起剪切。如共613页,那就613-601为第31号文件。余下的类推。

老师,能否提供一下代码,谢谢

WORD中的VBA我真是一点不熟悉。。对象也不知道如何操作的。谢谢

TA的精华主题

TA的得分主题

发表于 2015-2-11 23:03 | 显示全部楼层
1、遍历每一页
2、1-20页 设定为一个range     ,copy
3、每复制一个range 即新建一文档
4、新文档saveas  参数用全路径
5、past
6、关闭新建文档 参数用 保存修改

TA的精华主题

TA的得分主题

发表于 2015-2-12 10:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请楼主备份原文档后,将原文件放在一个新建文件夹里面,试用下面的宏:
Sub 多页另存()
'将文档每20页保存为一个文档!
'i=20页,p=总页数,j=p/i=保存次数,k=计数器,m=循环变量
    On Error Resume Next
    Dim i As String, docName As String, p As Long, j As Long, k As Long, m As Long
    i = InputBox("请输入要多少页保存为一个文档!", "每N页保存为一个文档", "3")
    If i = "" Then Exit Sub
    docName = ActiveDocument.Name
    docName = Left(docName, Len(docName) - 4)
    p = ActiveDocument.Content.Information(wdNumberOfPagesInDocument)
    If i = 1 Then
        j = p / i
    Else
        If i >= p Then MsgBox "错误!超出总页数!请重新设定!", vbOKOnly + vbCritical, "信息": End
        j = Int(p / i) + 1
    End If
    For m = 1 To j
        k = k + 1
        p = ActiveDocument.Content.Information(wdNumberOfPagesInDocument)
        If i >= p Then
            Selection.WholeStory
        Else
            Selection.GoTo What:=wdGoToPage, Which:=wdGoToFirst, Count:=i + 1, Name:=""
            Selection.HomeKey Unit:=wdStory, Extend:=wdExtend
        End If
        Selection.Cut
        Documents.Add.Range.Paste
        ActiveDocument.SaveAs FileName:=docName & "-" & k & ".doc"
        ActiveDocument.Close
        ActiveDocument.Characters(1).Copy '变相清空剪贴板
    Next m
    ActiveDocument.Close savechanges:=wdDoNotSaveChanges
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-2-12 14:44 | 显示全部楼层
413191246se 发表于 2015-2-12 10:15
请楼主备份原文档后,将原文件放在一个新建文件夹里面,试用下面的宏:
Sub 多页另存()
'将文档每20页保存 ...

谢谢帮助。。。

TA的精华主题

TA的得分主题

发表于 2015-2-12 15:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-6-8 10:46 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-6-8 21:08 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-16 02:54 , Processed in 0.024216 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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