WPS表格 JSA 学习笔记 - 实现设置编号并添加到自定义选项卡
Posted 笑虾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPS表格 JSA 学习笔记 - 实现设置编号并添加到自定义选项卡相关的知识,希望对你有一定的参考价值。
WPS表格 JSA 学习笔记 - 设置编号
经常遇到编号设置混乱的文档,需要我们修复。本文的代码可以帮到你。不过再那这前,我们先试试手动实现。
0. 纯手工实现:
- 首先,要确认我们的标题层级都是正确的。
- 为了便于观察,先取消所有编号。(此步可选)
全选当前文本》开始》段落》编号》选【无】。
热键(按顺序):Ctrl + a, Alt, H, U
- 选择第一个一级标题,利用【选择格式相似的文本】选中所有一级标题。
开始》选择》选择格式相似的文本
热键(按顺序):Alt, H, S, L, S
- 设置编号。记得整个文档都要使用同一个编号。
- 重复第3步,将2、3、… 后续所有级别的标题都设置一遍。
0.1. 编号使用建议
注意:整个文档,都要使用同一个编号,记得应用到【整个列表】。这样后续我们想调整就很方便了。
建议一开始都统一使用系统自带的编号,选一个满意的或最接近的。
整个文档处理完后,最后来再调整。
因为每次编辑编号后就会多出一个自定义编号,也不知道是不是BUG,如果小白多次操作后很可能会出现一大堆自定义编号,到最后自己都分不清应该用哪个。
如果确实有多种编号同时使用,那记得自己清楚,别互相用乱了就好。
所以最简单的方法就是只保留一个自定义编号,设置时都选择它就OK了。
- 在标题上进行:开始》编号》自定义。改成自己想要的效果。
- 确定时记得,左下角:应用于【整个列表】(因为我们整篇文章从头到脚都使用的是同一个编号,所以只要改一处就都生效了。)
1. 标题设置编号
如果数量不多,并且想手动控制一个一个边改边检查,可以用这个。
- 先定位到第一个要设置的标题处。
- 执行以下代码。
function 标题设置编号()
try
var listGallery = ListGalleries.Item(3).ListTemplates.Item(9);
catch(e)
alert("请先创建一个自定义编号!")
return;
var lf = Selection.Range.ListFormat;
// 去掉编号
lf.RemoveNumbers(wdNumberParagraph);
// 应用自定义编号的第1个
lf.ApplyListTemplate(listGallery, wdContinueList, wdListApplyToWholeList, wdWord8ListBehavior);
// 找下一个标题
Selection.GoTo(wdGoToHeading, wdGoToNext, 1, "");
2. 遍历所有标题设置编号
如果数量多,或者成竹在胸,直接批量处理。
- 准备:先创建一个自定编号。(详情见下文:关于编号引用)
- 先全选全文,取消编号。
- 将标定在最开始。
- 执行以下方法。
function 遍历所有标题设置编号()
var listGallery = ListGalleries.Item(3).ListTemplates.Item(9);
try
listGallery = ListGalleries.Item(4).ListTemplates.Item(1);
catch(e)
var result = MsgBox("是否使用默认编号?",jsYesNo,"未找到【自定义编号】")
if(result == 7)// yes=6, no=7
return;
var flag = 0;
var rng = Selection.GoTo(wdGoToHeading, wdGoToNext, 1, "");
// 关闭屏幕更新,提升执行效率
// Application.ScreenUpdating = false;
var beginTime = new Date();
while (flag != rng.End)
// 记住当前位置
flag = rng.End;
// 定位到下一个标题
rng.GoTo(wdGoToHeading, wdGoToNext, 1, "");
// 去掉编号
rng.ListFormat.RemoveNumbers(wdNumberParagraph);
// 应用自定义编号的第1个
rng.ListFormat.ApplyListTemplate(listGallery, wdContinueList, wdListApplyToWholeList, wdWord8ListBehavior);
// 找下一个标题
rng = Selection.GoTo(wdGoToHeading, wdGoToNext, 1, "");
// 日志
Selection.HomeKey(wdLine, wdExtend);
Selection.EndKey(wdLine, wdExtend);
Console.log(Selection.Range.Text);
DoEvents(); // 在循环过程中避免卡死,体验更好些。测试 315 个目标多了6秒,但因为有实时反馈,心理返回感觉这样更快。
var endTime = new Date();
Debug.Print("用时共计"+(endTime-beginTime)+"ms");
// 开启屏幕更新
// Application.ScreenUpdating = true;
添加到自定义选项卡
为了方便操作,我们做点辅助工作。
文件》选项》按下图顺序操作。(自定义选项卡、组是我手动创建的)
参考资料
关于编号引用
这句就是引用编号的 ListGalleries.Item(3).ListTemplates.Item(9);
这里选中的是第3个【多级编号】列表中的第9项。
以上是关于WPS表格 JSA 学习笔记 - 实现设置编号并添加到自定义选项卡的主要内容,如果未能解决你的问题,请参考以下文章