编写一个宏来自动修复从我们使用的软件生成的MS Word文档中的释义间距问题。
目标:
:send
。0pt
。 进度:
目前,我有一个功能可以将整个文档设置为3pt
,然后浏览所有列表并将其更改为0pt
。 (目前也有一个亮点,所以我可以很容易地看到什么被视为列表)。
它在某些部分很有用,但在其他部分(我假设我们使用的软件如何生成文档),列表不存在,它将继续格式化文本块并前往{{1当不需要时(见附图)。
目前的代码是:
3pt
工作:
无效:
答案 0 :(得分:2)
根据MSDN:
列出对象:表示已应用于文档中指定段落的单个列表格式。
因此,如果您有多个列表中间包含一些非项目符号的段落,Range
将从第一个列表的第一个项目开始,以最后一个列表的最后一个项目结束包括中间所有没有项目符号的段落。
要解决此问题,您需要分隔列表(右键单击项目符号并选择单独列表)。但是,您提到该文档是由某些软件生成的,因此可能不是一种选择。在这种情况下,您将不得不迭代每个Range
的{{1}}的段落,并检查它是否有List
表明它是一个列表项,否则它是一个非项目符号段落:
ListFormat.ListTemplate
答案 1 :(得分:0)
甚至在触及VBA之前:
如果在某个阶段您改变主意并希望使用6pt
间距,则可以调整模板并重新应用它,而不是查找所有VBA代码并重新编写它。不仅如此,通过使用样式,您可以避免使用VBA代码,或者使用可能会干扰某些公司安全设置的启用VBA的文档。
哦,并设置公司结构,将模板的使用仅限于已批准的模板。