ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助大神如何在多页word文档中按需要数字生成独立新文档

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-12-28 15:06 | 显示全部楼层
* 楼主,我重新构思了一下,改变了思路,具体是:以循环遍历每个表格(及上下各一段)设为区域 r,再将其上和其下的区域全部删除,再另存为,循环处理。请试用:
  1. Sub test()
  2.     Dim s$, p$, y$, a&, i&, r As Range
  3.     y = ActiveDocument.FullName
  4.     a = ActiveDocument.Tables.Count

  5.     Do While a > 0
  6.         i = i + 1
  7.         If i = 9 Then ActiveDocument.Close savechanges:=wdDoNotSaveChanges: End
  8.         ActiveDocument.Tables(i).Select
  9.         Selection.MoveStart 4, -1
  10.         Selection.MoveEnd 4, 1
  11.         Set r = Selection.Range
  12.         ActiveDocument.Range(Start:=0, End:=r.Start).Select
  13.         If i <> 1 Then Selection.Delete
  14.         ActiveDocument.Range(Start:=r.End, End:=ActiveDocument.Content.End).Select
  15.         If i = a Then
  16.             With r
  17.                 .Select
  18.                 .Characters.Last.InsertParagraphBefore
  19.                 .Characters.Last.InsertParagraphBefore
  20.             End With
  21.             With Selection
  22.                 .MoveRight
  23.                 .MoveLeft
  24.                 .MoveLeft
  25.                 .InsertParagraphBefore
  26.                 .EndKey 6, 1
  27.                 .Delete
  28.             End With
  29.             GoTo en
  30.         End If
  31.         Selection.Delete
  32.         r.Characters.Last.Delete
  33. en:
  34.         ActiveWindow.ActivePane.View.Zoom.PageFit = wdPageFitFullPage

  35.         With ActiveDocument
  36.             p = .Path & ""
  37.             s = .Tables(1).Range.Cells(3).Range.Text
  38.             s = Left(s, Len(s) - 2)
  39.             .SaveAs FileName:=p & s
  40.             .Close
  41.         End With
  42.         Documents.Open FileName:=y
  43.     Loop
  44. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-28 17:03 | 显示全部楼层
413191246se 发表于 2018-12-28 15:06
* 楼主,我重新构思了一下,改变了思路,具体是:以循环遍历每个表格(及上下各一段)设为区域 r,再将其上 ...

万分感激大侠,正在摸索上一个代码,大侠这就换了个想法达成目的了。而且这次的代码要适用的多。感激,而且感觉这次的代码及想法又打开了一个新角度。如果能摸透了,对处理文档资料很有帮助。越发感觉书读少了。赶紧订个几本书补充一下知识。再次感谢@413191245se的大力支持。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-28 17:28 | 显示全部楼层
413191246se 发表于 2018-12-28 15:06
* 楼主,我重新构思了一下,改变了思路,具体是:以循环遍历每个表格(及上下各一段)设为区域 r,再将其上 ...

想给大侠发个消息都没权限。囧囧囧
  求个大侠的好友位

TA的精华主题

TA的得分主题

发表于 2018-12-28 18:46 | 显示全部楼层
没关系,楼主,有问题就及时上来问,我不是大侠,本坛大侠很多的,高手如云,我能帮忙就会帮忙的。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-1-7 12:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Sub testFormatTxt()
    Dim i As Long, Rng As Range, MyDoc As Document, s$, iPath$
    Application.DisplayAlerts = wdAlertsNone
    iPath = ActiveDocument.Path & "\"
    With Selection
        For i = 1 To .Information(wdNumberOfPagesInDocument) - 1
            .GoTo wdGoToPage, wdGoToAbsolute, i
            .Bookmarks("\page").Range.Select
            s = .Tables(1).Cell(2, 2).Range.Text '不动产单元号
            s = Left(s, Len(s) - 2)
            Set Rng = .Range
'            Rng.Copy
            Set MyDoc = Documents.Add
            With Application.Windows(MyDoc).Selection
'                .HomeKey Unit:=wdStory
                  .GoTo wdGoToPage, wdGoToAbsolute, 1
                .Range.FormattedText = Rng
'                 .PasteAndFormat (wdFormatOriginalFormatting)
                .PageSetup.TopMargin = CentimetersToPoints(0.75)
                MyDoc.SaveAs Filename:=iPath & s & ".docx" '保存文档名
                MyDoc.Close '关闭文档
            End With
        Next
    End With
End Sub

根据大神的代码改写。发觉另存为的文档表格中房屋状况的标题(行高有改变)
于是就做了页面设置。
对于Word,我是小白菜。都不知道啥来的。
除了这个方法,应该还可以使用section来分页的。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-1-7 14:56 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-11 16:46 , Processed in 0.035895 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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