WPS表格 JSA 学习笔记 - 实现设置编号并添加到自定义选项卡

Posted 笑虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPS表格 JSA 学习笔记 - 实现设置编号并添加到自定义选项卡相关的知识,希望对你有一定的参考价值。


经常遇到编号设置混乱的文档,需要我们修复。本文的代码可以帮到你。不过再那这前,我们先试试手动实现。

0. 纯手工实现:

  1. 首先,要确认我们的标题层级都是正确的。
  2. 为了便于观察,先取消所有编号。(此步可选)
    全选当前文本》开始》段落》编号》选【无】。
    热键(按顺序):Ctrl + a, Alt, H, U
  3. 选择第一个一级标题,利用【选择格式相似的文本】选中所有一级标题。
    开始》选择》选择格式相似的文本
    热键(按顺序):Alt, H, S, L, S
  4. 设置编号。记得整个文档都要使用同一个编号。
  5. 重复第3步,将2、3、… 后续所有级别的标题都设置一遍。

0.1. 编号使用建议

注意:整个文档,都要使用同一个编号,记得应用到【整个列表】。这样后续我们想调整就很方便了。
建议一开始都统一使用系统自带的编号,选一个满意的或最接近的。
整个文档处理完后,最后来再调整。

因为每次编辑编号后就会多出一个自定义编号,也不知道是不是BUG,如果小白多次操作后很可能会出现一大堆自定义编号,到最后自己都分不清应该用哪个。
如果确实有多种编号同时使用,那记得自己清楚,别互相用乱了就好。
所以最简单的方法就是只保留一个自定义编号,设置时都选择它就OK了。

  1. 在标题上进行:开始》编号》自定义。改成自己想要的效果。
  2. 确定时记得,左下角:应用于【整个列表】(因为我们整篇文章从头到脚都使用的是同一个编号,所以只要改一处就都生效了。)

1. 标题设置编号

如果数量不多,并且想手动控制一个一个边改边检查,可以用这个。

  1. 先定位到第一个要设置的标题处。
  2. 执行以下代码。
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. 遍历所有标题设置编号

如果数量多,或者成竹在胸,直接批量处理。

  1. 准备:先创建一个自定编号。(详情见下文:关于编号引用
  2. 先全选全文,取消编号。
  3. 将标定在最开始。
  4. 执行以下方法。
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 学习笔记 - 实现设置编号并添加到自定义选项卡的主要内容,如果未能解决你的问题,请参考以下文章

WPS表格 JSA 学习笔记 - 设置自定义编号

WPS表格 JSA 学习笔记 - 批量设置表格

WPS表格 JSA 学习笔记 - 批量设置表格

WPS表格 JSA 学习笔记 - 批量设置图片

WPS表格 JSA 学习笔记 - 批量设置图片

WPS表格 JSA 学习笔记 - 实现贪吃蛇