ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 从word里面提取文字粘贴到另外一个word文档的指定位置

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-12-21 13:28 | 显示全部楼层 |阅读模式
本帖最后由 开开心心1986 于 2012-12-25 21:50 编辑

我要做的事情是,把一个word文档里面的特定位置的文字复制粘贴到另外一个word文档的特定位置。一个原始文档对应一个目标文档。
有几百个这样的原始文档,希望能批量处理。
谢谢。
见附件

原始文档与目标文档.rar

11.04 KB, 下载次数: 93

TA的精华主题

TA的得分主题

发表于 2012-12-23 00:48 | 显示全部楼层
比较简单的办法,是将Word的内容整理成规范的格式,然后导入到Excel中,进行内容变换,变换完成之后,再复制到Word中来。

我经常这么干,特别是写枯燥的代码时,利用这种方式让Excel来生成一些形式相似的代码,特别是常量的定义。

TA的精华主题

TA的得分主题

发表于 2012-12-23 02:21 | 显示全部楼层
赞成2楼的看法,格式统一规范,提供样稿附件。

TA的精华主题

TA的得分主题

发表于 2012-12-23 05:09 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
先将姓名地址提取出来到excel 然后邮件合并

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-25 21:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
dingboy_VBA 发表于 2012-12-23 00:48
比较简单的办法,是将Word的内容整理成规范的格式,然后导入到Excel中,进行内容变换,变换完成之后,再复制 ...

已经上传附件,求详细指点

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-25 21:51 | 显示全部楼层
413191246se 发表于 2012-12-23 02:21
赞成2楼的看法,格式统一规范,提供样稿附件。

样稿附件已经提供。求更具体的指导,谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-25 21:53 | 显示全部楼层
zhanglei1371 发表于 2012-12-23 05:09
先将姓名地址提取出来到excel 然后邮件合并

我之前没有上传样稿,所以未能完整表达我的意思,你说的办法好像不是很合适。
现在上传了样稿,求详细指点。谢谢

TA的精华主题

TA的得分主题

发表于 2012-12-27 11:20 | 显示全部楼层
本帖最后由 413191246se 于 2012-12-27 11:21 编辑

    声明一下:虽然热心无限,但因水平问题,只能算完成了一半或多一点吧,感觉复杂,似应用到Range的问题,要想完美解决,须请sylun大侠解决,仅为楼主提供一定参考吧!(光标焦点位于原始文档后应用,可以设置本宏为热键 F4,方便应用。另,楼主不必着急,可等待高手进一步完善。)
[code=vb]Sub 提取文字()
    Dim y As String
    Selection.HomeKey Unit:=wdStory
    Selection.Find.ClearFormatting
    Selection.Find.Text = "事实与理由"
    Selection.Find.Execute

    Selection.EndKey Unit:=wdLine
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.Paragraphs(1).Range.Select
    y = Selection.Text
    y = Left(y, Len(y) - 1)

    Selection.HomeKey Unit:=wdStory
    Selection.Find.ClearFormatting
    Selection.Find.Text = "甲方请求"
    Selection.Find.Execute
    Selection.HomeKey Unit:=wdLine
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.HomeKey Unit:=wdStory, Extend:=wdExtend
    Selection.Copy

' 新建文档
    Documents.Add DocumentType:=wdNewBlankDocument

' 生成目标文档
    Selection.TypeText Text:="争议解决方案草稿" & vbCr
    ActiveDocument.Paragraphs(2).Range.Delete
    Selection.PasteAndFormat (wdPasteDefault)
    Selection.TypeText Text:=vbCr & "经研究,XXXXXXXXX存在甲种纠纷,简介如下。" & vbCr & "甲方声称,"
    Selection.HomeKey Unit:=wdStory
    Selection.Find.ClearFormatting
    Selection.Find.Text = "甲方声称,"
    Selection.Find.Execute
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.TypeText Text:=y & "纠纷因此产生,建议如下协调:" & vbCr & "一、乙方ZZZZZZZZZZ。" & vbCr & "上述协议,不违反法律规定,希望双方自愿遵守。"
    ActiveDocument.Content.Find.Execute FindText:="争议简介", ReplaceWith:="", Replace:=wdReplaceAll

' 简单排版
    Selection.WholeStory
    Selection.ClearFormatting
    Selection.ClearFormatting
    Selection.Font.Size = 14
    Selection.ParagraphFormat.LineSpacing = LinesToPoints(1.25)
    Selection.ParagraphFormat.CharacterUnitFirstLineIndent = 2
' 设置标题一
    With ActiveDocument
        .Paragraphs(1).Range.InsertParagraphBefore
        .Paragraphs(2).Range.InsertParagraphAfter
        With .Range(Start:=0, End:=.Paragraphs(3).Range.End)
            .Style = ActiveDocument.Styles(wdStyleHeading1)
            With .ParagraphFormat
                .SpaceBefore = 0
                .SpaceAfter = 0
                .LineSpacing = LinesToPoints(1.15)
                .Alignment = wdAlignParagraphCenter
            End With
        End With
        .Paragraphs(1).Range.Font.Size = 22
        .Paragraphs(3).Range.Font.Size = 18
    End With
    With Selection.Font
        .Kerning = 0
        .DisableCharacterSpaceGrid = True
    End With
    With Selection.ParagraphFormat
        .AutoAdjustRightIndent = False
        .DisableLineHeightGrid = True
    End With
    ActiveWindow.ActivePane.View.Zoom.PageFit = wdPageFitBestFit
    Selection.HomeKey Unit:=wdStory

' 插入表格
    ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:= _
        4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
        wdAutoFitFixed
    With Selection.Tables(1)
        If .Style <> "网格型" Then
            .Style = "网格型"
        End If
        .ApplyStyleHeadingRows = True
        .ApplyStyleLastRow = True
        .ApplyStyleFirstColumn = True
        .ApplyStyleLastColumn = True
    End With
    Selection.TypeText Text:="拟稿人"
    Selection.MoveRight Unit:=wdCell
    Selection.MoveRight Unit:=wdCell
    Selection.TypeText Text:="拟稿时间"
    Selection.MoveRight Unit:=wdCell
    Selection.MoveRight Unit:=wdCell
    Selection.TypeText Text:="核稿意见"
    Selection.MoveRight Unit:=wdCell
    Selection.TypeText Text:="打印    份"
    Selection.MoveRight Unit:=wdCharacter, Count:=3, Extend:=wdExtend
    Selection.Cells.Merge
    Selection.Tables(1).Select
    Selection.Font.Size = 12
    Selection.ParagraphFormat.Space1
    Selection.SelectCell
    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
    Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
    Selection.Rows(1).Height = CentimetersToPoints(1)
    Selection.Rows(2).Height = CentimetersToPoints(2)
    Selection.Rows(2).Cells(2).Select
    Selection.TypeParagraph
    Selection.TypeParagraph
    Selection.Tables(1).Select
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.Tables(1).Select
    Selection.Font.Bold = False
    Selection.HomeKey Unit:=wdStory
End Sub[/code]

TA的精华主题

TA的得分主题

发表于 2018-11-26 21:54 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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