1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] Word 设置页码的域代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-1-13 15:43 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 八两阳光 于 2016-1-13 16:01 编辑

问题1:左下角显示的页码(状态栏左边)应该和我设置的页码无关吧?
我发现,第一页(叫它封面页吧)同样的插入奇数页分节符,跳到第二节的第一页(叫它摘要页吧),此时状态栏的页码显示这是“第3页”。封面页我不设置页码,摘要页设置页码,且从1开始。结果出现,摘要页在状态栏本来显示是“第3页”,此时却变成了“第2页”。如果我设置奇偶页不同,那么摘要页在状态栏上则仍然显示是“第3页”。这种情况我该如何理解?
问题2:
假如从第二节第1页开始设置页码,且统计第二节的总页码。我思路是这样的:【第二节总页数】=【文档总页数】-【第一节总页数】。【文档总页数】在Word里可以用域{NUMPAGES}求得,【第一节总页数】可以用域{SECTIONPAGES}求得。它的域代码可以这样:
第一节页脚:{SECTIONPAGES}
第二节页脚:{={NUMPAGES}-{SECTIONPAGES}}
但是假如前面有两节,文档有三节,那么应该是:【第三节总页数】=【文档总页数】-【第一节总页数】-【第二节总页数】,这时我希望能设两个变量分别代表【第一节总页数】和【第二节总页数】,假如是a和b。
由于设置了奇数页分节符,让a=SECTIONPAGES的数值,当当前节页数是奇数,则SECTIONPAGES的数值会比实际页数少1,那么我在当前节设的a应该是{SECTIONPAGES}+1;如果页数是偶数,则和实际页数一样,那么a就是{SECTIONPAGES}。因此,我感觉这里需要用域IF判断一下当前节的页数是奇数还是偶数。今天我试了试,结果不对。
第一节页脚:{SET a {IF {MOD({SECTIONPAGES},2)=0} {={SECTIONPAGES}} {={SECTIONPAGES}+1}}}
第二节页脚:{SET b {IF {MOD({SECTIONPAGES},2)=0} {={SECTIONPAGES}} {={SECTIONPAGES}+1}}}
第三节页脚:{={NUMPAGES}-a-b}
我这样编写后,结果不对呢!

谁能帮帮我


TA的精华主题

TA的得分主题

发表于 2016-1-13 23:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
还是把你的文档发上来吧,把主要内容删掉,留下文档的主要框架即可。

TA的精华主题

TA的得分主题

发表于 2016-1-14 14:20 | 显示全部楼层
先回答你的第一个问题,我认为是这样的:
因为你使用了分节符(奇数页),而这“奇数页”是与用户所设的页码相关的。封面页码是1,所以紧接着摘要页页码本来是2的,但你又使用分节符(奇数页),即摘要页首页码不能是偶数,于是系统就将该页码变为3了,而一开始默认的页码格式是“续前节”,系统就不会让页码产生断码,就会自动在前面再插入一页。
然后,当你将页码格式设置了起始页,系统就认为页码可以不连续了,所以就没有在前面插入一页。
因此状态栏显示的页码是与用户所设页码有关的,这正是由分节符(奇数页)与用户所设页码相关引起的。
同理,我发现页眉页脚的“奇偶页不同”也是与用户所设页码相关。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-14 16:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
dafanshu1 发表于 2016-1-14 14:20
先回答你的第一个问题,我认为是这样的:
因为你使用了分节符(奇数页),而这“奇数页”是与用户所设的页 ...

设置第X页,共Y页,这个Y我知道用{NUMPAGES}-a,a为常量。或者在最后一页插入书签,然后用{PAGEREF}。但是两种方法都有缺点。前者是,a由于固定成了常量,如果a所代表的页数发生改变,那么a就不再是实际页数,求出来的Y就是错的。而后一种虽然不存在这种问题,但是如果不小心删除了文档中插入的这个书签(在文档中又看不见),那么页码也会出错。
因此,我就在想,能否让a变成一个像域一样的变量。
作为研究而已,我没有确切的一个文档。
根据前面和您的交流,我编写除了域代码。由于现在我Word有点问题(自定义样式五六个后,就会出现选择应用某一样式时应用不了的问题),搞得我每次都以为成功了,结果一实验还是存在问题,而这个问题究竟是代码错误,还是我Word本身问题我也搞不清楚。
附件中的文档是我昨天编写域代码后以为成功了的文档。当时封面页不管有没有第二页的那个偶数页,我摘要页插入分页符不管扩展几页都没问题。但是我发现如果封面页再扩展几页,问题就出现了。经过查看,我发现IF域中从前往后的三个{SECTIONPAGES},除了第一个是实时记录当前节的页数,后面的两个都不是。
实在是搞不出来了~附件已上传,只能求大伙群策群力的一起研究,看究竟什么问题。要实现预定的效果,得怎么搞。

完美页码.rar

12.95 KB, 下载次数: 151

TA的精华主题

TA的得分主题

发表于 2016-1-14 23:09 | 显示全部楼层
八两阳光 发表于 2016-1-14 16:44
设置第X页,共Y页,这个Y我知道用{NUMPAGES}-a,a为常量。或者在最后一页插入书签,然后用{PAGEREF}。但 ...

好,大家一起研究一下。我这两天工作比较忙,连你前天发的贴都来不及回复,你就在这发新贴了。我可能要到周六日才能研究了。若兄台知道方法,请发上来分享一下。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-17 16:20 | 显示全部楼层
dafanshu1 发表于 2016-1-14 23:09
好,大家一起研究一下。我这两天工作比较忙,连你前天发的贴都来不及回复,你就在这发新贴了。我可能要到 ...

客气了,我也是当时有这个想法,想试试,我也是今天刚下火车到家,早上把系统重新装了下,但愿能搞出来吧

TA的精华主题

TA的得分主题

发表于 2016-1-17 17:20 | 显示全部楼层
八两阳光 发表于 2016-1-17 16:20
客气了,我也是当时有这个想法,想试试,我也是今天刚下火车到家,早上把系统重新装了下,但愿能搞出来吧

你试试这附件行不行。

完美页码.rar

15.62 KB, 下载次数: 151

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-18 16:55 | 显示全部楼层
dafanshu1 发表于 2016-1-17 17:20
你试试这附件行不行。

还是不行。而且代码的逻辑感觉好复杂

封面.zip

13.84 KB, 下载次数: 106

TA的精华主题

TA的得分主题

发表于 2016-1-18 22:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 dafanshu1 于 2016-1-18 23:26 编辑
八两阳光 发表于 2016-1-18 16:55
还是不行。而且代码的逻辑感觉好复杂

我的代码在03版试过是可行的,不知2016版会怎样了。在你传上来的“封面”文件中,摘要和正文的起始页码都不是从1开始,都是“续前页”的,但我试了一下,我的代码仍适用,现在发上来你试试。
至于代码的逻辑,若你认为成功我才向你解释吧。

封面.rar

12.48 KB, 下载次数: 110

TA的精华主题

TA的得分主题

发表于 2016-1-18 23:35 | 显示全部楼层
oh!No!上面的附件还是不用试了,发现有点错误,现在太晚了,明天有空重再发上来吧,不好意思,我不懂如何删除贴子。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

1234

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

GMT+8, 2025-1-18 22:06 , Processed in 0.029194 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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