ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创]多节文档中第*页共*页第*节本节第*页本节共*页

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-6-1 16:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 leiyi 于 2008-12-13 18:13 发表
节内第几页不用VBA


如果能有详细的操作说明就好了。把表格复制到新的文档中,页码就都不对了。不知道该怎么用。水平太低呀,有高手详细说一下就好了。楼主2008年的贴,现在还能回复吗。

TA的精华主题

TA的得分主题

发表于 2011-12-1 15:48 | 显示全部楼层
想把第几节,本节第几页 本节共几页放于页眉中,但每节的页眉内容又不相同,请问能否办到?

TA的精华主题

TA的得分主题

发表于 2014-8-5 10:17 | 显示全部楼层
运行本程序,必须保证“节”>2,程序的结果为:在页眉处分2行显示,总第?页共?页,第?节本节第?页本节共?页。
  1. Sub AllPages()
  2.     Dim i As Section, myRange As Range, myBk As Bookmark, strBk As String
  3.     Dim KeyRange As Range, BtLenth As Byte
  4.     On Error Resume Next
  5.     With ActiveDocument
  6.         If .Sections.Count = 1 Then Exit Sub
  7.         Application.ScreenUpdating = False
  8.         For Each myBk In .Bookmarks
  9.             If VBA.InStr(myBk.Name, "myBK_S") = 1 Then myBk.Delete
  10.         Next
  11.         For Each i In .Sections
  12.             Set myRange = .Range(i.Range.Start, i.Range.Start)
  13.             strBk = "myBK_S" & i.Index
  14.             BtLenth = Len(strBk)
  15.             .Bookmarks.Add strBk, myRange
  16.             With i.Headers(wdHeaderFooterPrimary)
  17.                 Set KeyRange = .Range
  18.                 .LinkToPrevious = False
  19.                 .Range.Text = "总第PAGE页共NUMPAGES页" & Chr(13) & "第SECTION节 ,本节第=PAGE-PAGEREF " & strBk & "+1页, 本节共SECTIONPAGES页"
  20.                 Set KeyRange = .Range
  21.                 KeyRange.SetRange KeyRange.Start + 38, KeyRange.Start + 38 + 8 + BtLenth
  22.                 KeyRange.Fields.Add KeyRange, wdFieldEmpty, , False
  23.                 Set KeyRange = .Range
  24.                 KeyRange.SetRange KeyRange.Start + 33, KeyRange.Start + 37
  25.                 KeyRange.Fields.Add KeyRange, wdFieldEmpty, , False
  26.                 Set KeyRange = .Range
  27.                 KeyRange.SetRange KeyRange.Start + 32, KeyRange.End - 20
  28.                 KeyRange.Fields.Add KeyRange, wdFieldEmpty, , False
  29.                 Set KeyRange = .Range
  30.                 KeyRange.SetRange KeyRange.End - 14, KeyRange.End - 2
  31.                 KeyRange.Fields.Add KeyRange, wdFieldEmpty, , False
  32.                 Set KeyRange = .Range
  33.                 KeyRange.SetRange KeyRange.Start + 19, KeyRange.Start + 26
  34.                 KeyRange.Fields.Add KeyRange, wdFieldEmpty, , False
  35.                 Set KeyRange = .Range
  36.                 KeyRange.SetRange KeyRange.Start + 8, KeyRange.Start + 16
  37.                 KeyRange.Fields.Add KeyRange, wdFieldEmpty, , False
  38.                 Set KeyRange = .Range
  39.                 KeyRange.SetRange KeyRange.Start + 2, KeyRange.Start + 6
  40.                 KeyRange.Fields.Add KeyRange, wdFieldEmpty, , False
  41.                 .Range.Fields.Update
  42.             End With
  43.         Next
  44.     End With
  45.     Application.ScreenUpdating = True
  46. End Sub
复制代码
虽然使用程序比域多输入多少字符,但是能方便修改,具有可读性。

TA的精华主题

TA的得分主题

发表于 2014-11-10 15:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Word MVP macropod有个域公式,不需vba,直接生成节页码。网址在 http://www.tech-archive.net/Archive/Word/microsoft.public.word.newusers/2009-07/msg00549.html

{QUOTE{IF{PAGE}= 1 {SET Section0 0}}
{IF{PAGE}<>{NUMPAGES} {IF{={SECTIONPAGES}+{REF {QUOTE Section{={SECTION}-1}}}}={PAGE} {SET {QUOTE Section{SECTION}} {PAGE}}}}
"Page {={PAGE}-{REF {QUOTE Section{={SECTION}-1}}}} of {SECTIONPAGES}"}

我试了几次,有时候可以,有时候不行。目前看问题似乎出在{SET Section0 0}是否运行上。还望高手研究下,以发挥这段代码的作用
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 03:42 , Processed in 0.035798 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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