ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何给word的各个标题级别快速插入编号?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-7-3 12:15 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在写文章的时候都是标记标记的级别,如图,最后会写成一篇只有各级标题没有编号的文章,然后我想一次性给这些标题增加编号,比如,一级标题的编号分别是一、二、三,下面二级标题的编号分别是1、2、3,除了鼠标到每个标题哪里挨个点编号以外,整篇文章的编号能不能一次性添加?如何做?
TIM截图20170703121425.png

你.rar

9.25 KB, 下载次数: 14

TA的精华主题

TA的得分主题

发表于 2017-7-3 12:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
1、鼠标放在文本所在行------右键--------样式-------选择格式相似文本
2、再右键------编号------选择你要的编号样式

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-3 23:27 | 显示全部楼层
huanglicheng 发表于 2017-7-3 12:36
1、鼠标放在文本所在行------右键--------样式-------选择格式相似文本
2、再右键------编号------选择你 ...

如果想一次性添加多级列表呢?就是比如一共有5个标题级别,我想添加5级列表,可以一次性添加吗?我发现如果一次性全选添加多级列表的话就会不区分标题级别,从头到尾都加成同一个级别的编号

TA的精华主题

TA的得分主题

发表于 2017-7-4 05:46 | 显示全部楼层
超级月亮 发表于 2017-7-3 23:27
如果想一次性添加多级列表呢?就是比如一共有5个标题级别,我想添加5级列表,可以一次性添加吗?我发现如 ...

估计没有直接的方法,需要VBA实现

TA的精华主题

TA的得分主题

发表于 2017-7-4 09:13 | 显示全部楼层
楼主必须会用VBA宏,如果不会请百度。下面是 本坛大神 杜先生 前一段写的代码,能把各级标题设置为自动编号:
  1. Sub 多级列表样式运用()
  2.     Dim p As Range, doc As Document, s As Range, sr$, r1$, r2$, r3$, r4$, a, j&, x&, ksr$
  3.     Set doc = ActiveDocument
  4.     Set p = IIf(Selection.Type = wdSelectionIP, doc.Content, Selection.Range)
  5.     sr$ = "一二三四五六七八九十百零千〇"
  6.     r1$ = "[" & sr & "]@、": r2$ = "[((][" & sr & "]@[))]": r3$ = "[0-9]@[、..]": r4$ = "[((][0-9]@[))]"
  7.     a = Array(r1, r2, r3, r4)
  8.     Call ListTitles(doc)
  9.     For j = 0 To UBound(a)
  10.         Set s = p.Duplicate
  11.         With s.Find
  12.             Do While .Execute(a(j), , , 1)
  13.                 If Not s.InRange(p) Then Exit Do
  14.                 With .Parent
  15.                     If Not .Information(wdWithInTable) Then
  16.                         x = Len(.Text): ksr = .Text
  17.                         .Expand 4: .Collapse
  18.                         If .MoveWhile(ksr, x) = x Then
  19.                             .MoveStart , -x: .Text = Empty
  20.                             .Style = ActiveDocument.Styles("标题 " & j + 2)
  21.                         Else
  22.                             .Move 4, 1
  23.                         End If
  24.                     End If
  25.                 End With
  26.             Loop
  27.         End With
  28.     Next
  29.     p.ListFormat.ConvertNumbersToText
  30. End Sub
  31. Sub ListTitles(doc As Document)
  32.     Dim LtTemp As ListTemplate, i%, a
  33.     Set LtTemp = doc.ListTemplates.Add(True)
  34.     On Error Resume Next
  35.     a = Array(6, 5, 11, 12)
  36.     For i = 2 To 5
  37.         With LtTemp.ListLevels(i)
  38.             If i = 2 Then .NumberFormat = "%2、": .NumberStyle = 37
  39.             If i = 3 Then .NumberFormat = "(%3)": .NumberStyle = 37
  40.             If i = 4 Then .NumberFormat = "%4.": .NumberStyle = 0
  41.             If i = 5 Then .NumberFormat = "(%5)": .NumberStyle = 0
  42.             .TrailingCharacter = 2: .StartAt = 1: .ResetOnHigher = True
  43.             .LinkedStyle = "标题 " & i
  44.             doc.Styles("标题 " & i).Font.ColorIndex = a(i - 2)
  45.         End With
  46.     Next
  47. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2017-7-13 14:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 悠哉游哉 于 2017-7-13 14:40 编辑

就用正常的编号办法啊
定义新的多级列表你既然已经设置好了级别,就在多级列表里设置需要的格式
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-12 21:37 , Processed in 0.022710 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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