我共有56页的内容,每一页都有“页数:当前页”,但是现在老大叫修改。
需要改为“页数:当前页/总页数”,打算使用宏来实现。
当前能做到,使用宏找到全文档的“页数:”并且能停顿。但是下步该怎么做?
实现以上的代码为:
2 .forward = false
3 .clearformatting
4 .matchwholeword = true
5 .matchcase = false
6 .wrap = wdfindcontinue
7 do while .execute(findtext:="页数:")=true
8 if msgbox(selection.information(wdhorizontalpositionRelativeToPage)) = vbNo then
9 exit do
10 end if
11 loop
12 end with
13
首次使用WORD的宏,问题多多。还需要不断学习。。。
有新的进展,接着补充。
20:59:46 终于完成来,花来2个钟,⊙﹏⊙b汗
代码如下:
2 .forward = false
3 .clearformatting
4 .matchwholeword = true
5 .matchcase = false
6 .wrap = wdfindcontinue
7 do while .execute(findtext:="页数:")=true
8 with selection
9 .moveenduntil cset:=vbcrlf,count:=wdforward
10 .moveright unit:=wdcharacter,count:=0,extend:=wdextend
11 end with
12 selection typetext text:="页数:"&selection.information(wdactiveendadjustedpagenumber)&"/"_
13 &selection.information(wdnumberofpagesindocment)
14 loop
15 end with
首次写VBA,显的很吃力,以后有时间再慢慢优化这个功能。
付:http://www.cnblogs.com/psbacd/ 给出的wdinformation 常量类型
wdactiveendadjustedpagenumber 返回页码,在该页中包含指定的所选内容或区域的活动结尾。如果设置了一个起始页码,并对页码进行了手工调整,则返回调整过的页码。
wdactiveendpagenumber 返回页码,在该页中包含指定的所选内容或区域的活动结尾,页码从文档的开头开始计算而不考虑对页码的任何手工调整。
wdactiveendsectionnumber 返回节号,在该节中包含了指定的所选内容或区域的活动结尾。
wdatendofrowmarker 如果指定的所选内容或区域位于表格的行结尾标记处,则本参数返回 true。
wdcapslock 如果大写字母锁定模式有效,则本参数返回 true。
wdendofrangecolumnnumber 返回表格列号,在该表格列中包含了指定的所选内容或区域的活动结尾。
wdendofrangerownumber 返回表格行号,在该表格行包含了指定的所选内容或区域的活动结尾。
wdfirstcharactercolumnnumber 返回指定的所选内容或区域中第一个字符的位置。如果所选内容或区域是折叠的,则返回所选内容或区域右侧紧接着的字符编号。
wdfirstcharacterlinenumber 返回所选内容中第一个字符的行号。如果 pagination 属性为 false,或 draft 属性为 true,则返回 - 1。
wdframeisselected 如果所选内容或区域是一个完整的图文框文本框,则本参数返回 true。
wdheaderfootertype 返回一个值,该值表明包含了指定的所选内容或区域的页眉或页脚的类型,如下表所示。 值 页眉或页脚的类型
- 1 无
0 偶数页页眉
1 奇数页页眉
2 偶数页页脚
3 奇数页页脚
4 第一个页眉
5 第一个页脚
wdhorizontalpositionrelativetopage 返回指定的所选内容或区域的水平位置。该位置是所选内容或区域的左边与页面的左边之间的距离,以磅为单位。如果所选内容或区域不可见,则返回 - 1。
wdhorizontalpositionrelativetotextboundary 返回指定的所选内容或区域相对于周围最近的正文边界的左边的水平位置,以磅为单位。如果所选内容或区域没有显示在当前屏幕,则本参数返回 - 1。
wdinclipboard 有关此常量的详细内容,请参阅 microsoft office 98 macintosh 版的语言参考帮助。
wdincommentpane 如果指定的所选内容或区域位于批注窗格,则返回 true。
wdinendnote 如果指定的所选内容或区域位于页面视图的尾注区内,或者位于普通视图的尾注窗格中,则本参数返回 true。
wdinfootnote 如果指定的所选内容或区域位于页面视图的脚注区内,或者位于普通视图的脚注窗格中,则本参数返回 true。
wdinfootnoteendnotepane 如果指定的所选内容或区域位于页面视图的脚注或尾注区内,或者位于普通视图的脚注或尾注窗格中,则本参数返回 true。详细内容,请参阅前面的 wdinfootnote 和 wdinendnote 的说明。
wdinheaderfooter 如果指定的所选内容或区域位于页眉或页脚窗格中,或者位于页面视图的页眉或页脚中,则本参数返回 true。
wdinmasterdocument 如果指定的所选内容或区域位于主控文档中,则本参数返回 true。
wdinwordmail 返回一个值,该值表明了所选内容或区域的的位置,如下表所示。值 位置
0 所选内容或区域不在一条电子邮件消息中。
1 所选内容或区域位于正在发送的电子邮件中。
2 所选内容或区域位于正在阅读的电子邮件中。
wdmaximumnumberofcolumns 返回所选内容或区域中任何行的最大表格列数。
wdmaximumnumberofrows 返回指定的所选内容或区域中表格的最大行数。
wdnumberofpagesindocument 返回与所选内容或区域相关联的文档的页数。
wdnumlock 如果 num lock 有效,则本参数返回 true。
wdovertype 如果改写模式有效,则本参数返回 true。可用 overtype 属性改变改写模式的状态。
wdreferenceoftype 返回一个值,该值表明所选内容相对于脚注、尾注或批注引用的位置,如下表所示。 值 描述
— 1 所选内容或区域包含、但不只限定于脚注、尾注或批注引用中。
0 所选内容或区域不在脚注、尾注或批注引用之前。
1 所选内容或区域位于脚注引用之前。
2 所选内容或区域位于尾注引用之前。
3 所选内容或区域位于批注引用之前。
wdrevisionmarking 如果修订功能处于活动状态,则本参数返回 true。
wdselectionmode 返回一个值,该值表明当前的选定模式,如下表所示。 值 选定模式
0 常规选定
1 扩展选定
2 列选定
wdstartofrangecolumnnumber 返回所选内容或区域的起点所在的表格的列号。
wdstartofrangerownumber 返回所选内容或区域的起点所在的表格的行号。
wdverticalpositionrelativetopage 返回所选内容或区域的垂直位置,即所选内容的上边与页面的上边之间的距离,以磅为单位。如果所选内容或区域没有显示在屏幕上,则本参数返回 - 1。
wdverticalpositionrelativetotextboundary 返回所选内容或区域相对于周围最近的正文边界的上边的垂直位置,以磅为单位。如果所选内容或区域没有显示在屏幕上,则本参数返回 - 1。
wdwithintable 如果所选内容位于一个表格中,则本参数返回 true。
wdzoompercentage 返回由 percentage 属性设置的当前的放大百分比。