如何在Word中提取指定页的内容

 我来答
apple89591856
2016-01-05 · 知道合伙人互联网行家
apple89591856
知道合伙人互联网行家
采纳数:1322 获赞数:5512
飞鸿世家库存推广团队领队人

向TA提问 私信TA
展开全部
一:利用Word里面的“索引”功能。

1、选中需要提取的文字,执行菜单命令“插入-引用-索引和目录”;
2、在“索引”选项页里面选择单击按钮“标记索引项”;
3、指定“选项”为“当前页”,根据需要可以指定提取之后显示的页码格式为加粗或者倾斜,单击“标记”;
4、此时标记索引项窗口并不会关闭,而且你还能在文档中找到并选中下一个需要提取的文字,重复步骤3;
5、如果没有其它需要提取的文字了,单击“关闭”;
6、在需要插入索引表的地方,执行菜单命令“插入-引用-索引和目录”,根据需要设置索引表的格式(比如分栏、对齐、缩进等风格),然后单击“确定”。

这样所有标记过索引的文字以及它们所在的页码就都提取出来了。

如果需要提取的文字有很多,那么或许也可以用VBA宏来自动标记索引(即相当于自动完成上面的1-5步骤)。但是前提是这些文字必须都有非常特定的格式,即可以保证当前文档中凡是具有这个格式的文本,都是需要提取索引的文本。

二:下列VBA代码可以自动为当前文档中的所有红色文字建立索引条目,并在当前光标位置处插入带文字条目以及对应页码的索引表:

Option Explicit

Sub AutoMarkIndexForAllRedText()

Dim oSaveSelection As Range

Set oSaveSelection = Selection.Range

Selection.StartOf wdStory
Selection.Find.ClearFormatting
Selection.Find.Font.Color = wdColorRed ' 在这里可以设置更多的匹配格式,如字体、字号等
While Selection.Find.Execute(FindText:="", Forward:=True, Format:=True)
ActiveDocument.Indexes.MarkEntry(Selection.Range, Selection.Range.Text).Select
Selection.Collapse wdCollapseEnd
Wend

oSaveSelection.Select
ActiveDocument.Indexes.Add Selection.Range

MsgBox "完成!"

End Sub

如果楼主对于这个代码生成的索引表样式不太满意,也没关系。因为现在所有索引条目已经建好,所以只需把自动生成的索引表删除后用Word自己的“插入-引用-索引和目录”命令来重新生成符合自己要求样式的索引表即可。
博思aippt
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT... 点击进入详情页
本回答由博思aippt提供
草原上之狼
高粉答主

2019-09-22 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.9万
采纳率:93%
帮助的人:4067万
展开全部
一:利用Word里面的“索引”功能。

1、选中需要提取的文字,执行菜单命令“插入-引用-索引和目录”;
2、在“索引”选项页里面选择单击按钮“标记索引项”;
3、指定“选项”为“当前页”,根据需要可以指定提取之后显示的页码格式为加粗或者倾斜,单击“标记”;
4、此时标记索引项窗口并不会关闭,而且你还能在文档中找到并选中下一个需要提取的文字,重复步骤3;
5、如果没有其它需要提取的文字了,单击“关闭”;
6、在需要插入索引表的地方,执行菜单命令“插入-引用-索引和目录”,根据需要设置索引表的格式(比如分栏、对齐、缩进等风格),然后单击“确定”。

这样所有标记过索引的文字以及它们所在的页码就都提取出来了。

如果需要提取的文字有很多,那么或许也可以用VBA宏来自动标记索引(即相当于自动完成上面的1-5步骤)。但是前提是这些文字必须都有非常特定的格式,即可以保证当前文档中凡是具有这个格式的文本,都是需要提取索引的文本。

二:下列VBA代码可以自动为当前文档中的所有红色文字建立索引条目,并在当前光标位置处插入带文字条目以及对应页码的索引表:

Option Explicit

Sub AutoMarkIndexForAllRedText()

Dim oSaveSelection As Range

Set oSaveSelection = Selection.Range

Selection.StartOf wdStory
Selection.Find.ClearFormatting
Selection.Find.Font.Color = wdColorRed ' 在这里可以设置更多的匹配格式,如字体、字号等
While Selection.Find.Execute(FindText:="", Forward:=True, Format:=True)
ActiveDocument.Indexes.MarkEntry(Selection.Range, Selection.Range.Text).Select
Selection.Collapse wdCollapseEnd
Wend

oSaveSelection.Select
ActiveDocument.Indexes.Add Selection.Range

MsgBox "完成!"

End Sub

如果楼主对于这个代码生成的索引表样式不太满意,也没关系。因为现在所有索引条目已经建好,所以只需把自动生成的索引表删除后用Word自己的“插入-引用-索引和目录”命令来重新生成符合自己要求样式的索引表即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mfkinfo
推荐于2016-07-10 · TA获得超过6349个赞
知道大有可为答主
回答量:4553
采纳率:83%
帮助的人:948万
展开全部
下面的代码是复制第2页的内容,使用时对应使用.past方法就可以了。

Dim lngSpePg&, lngEndPg&, lngBgn&, lngEnd&
lngSpePg = 2
lngEndPg = Selection.Information(wdNumberOfPagesInDocument)
With ActiveDocument
Select Case lngEndPg - lngSpePg
Case 0
.GoTo(What:=wdGoToPage, Which:=wdGoToNext, Name:=Format(lngSpePg)).Select '跳至第n页
lngBgn = Selection.Start '获取n页第一个字符的位置
lngEnd = Selection.EndKey(unit:=wdStory)
'lngEnd = Selection.Information(wdActiveEndPageNumber) '返回当前页码(忽略用户页码设置)
Case Is > 0
lngBgn = .GoTo(What:=wdGoToPage, Which:=wdGoToNext, Name:=Format(lngSpePg)).Start
lngEnd = .GoTo(What:=wdGoToPage, Which:=wdGoToNext, Name:=Format(lngSpePg + 1)).Start
Case Is < 0
MsgBox "指定页码超出总页码!"
End Select
.Range(lngBgn, lngEnd).Copy'复制第n页内容
End With
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
harnorow
2015-01-26 · 贡献了超过125个回答
知道答主
回答量:125
采纳率:0%
帮助的人:23.3万
展开全部
工具-自动编写摘要,可能不够精确,需要人工再检查下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式