我有一个包含像这样的编号列表的Word文档
列表样式是“List Paragraph”。 “List Paragraph”的左缩进是0.5“。如果我们运行以下代码重新应用样式”List Paragraph“,则样式的左缩进现在为0.75”
Dim t As ListTemplate
Set t = ActiveDocument.Styles("List Paragraph").ListTemplate
t.ListLevels(1).ResetOnHigher = True
Selection.Range.ListFormat.ApplyListTemplate t, False, wdListApplyToWholeList
结果,列表向右移动0.25“。 我想知道为什么方法ApplyListTemplate更改样式“List Paragraph”的左缩进。
在应用代码之前和之后,样式的描述是
"Indent:
Left: 0.5"
Hanging: 0.25", Numbered + Level: 1 + Numbering Style: 1, 2, 3, … + Start at: 1 + Alignment: Left + Aligned at: 0.75" + Indent at: 1", Style: Quick Style, Priority: 35
Based on: Text"
"Indent:
Left: 0.75"
Hanging: 0.25", Outline numbered + Level: 1 + Numbering Style: 1, 2, 3, … + Start at: 1 + Alignment: Left + Aligned at: 0.75" + Indent at: 1", Style: Quick Style, Priority: 35
Based on: Text"
我在Office 2003和2010中都发现了相同的行为
答案 0 :(得分:0)
我无法测试您的确切代码,因为我收到运行时错误5941,其中显示“所请求的集合成员不存在。”
话虽这么说,无论如何,Word都会倾向于“修改”列表的缩进,只要对其格式进行更改。可能有一个设置告诉Word停止“修复”列表,但我建议只需在代码末尾添加以下内容:
With Selection.ParagraphFormat
.LeftIndent = InchesToPoints(0.75) ' Left indent
.RightIndent = InchesToPoints(0) ' Right indent
.FirstLineIndent = InchesToPoints(-0.25) ' First line indent
End With
这将给你一个0.5英寸的左缩进和0.25英寸的悬挂缩进(即使数字可能看起来有点奇怪)。您不需要以 .RightIndent = 开头的中间行,但我想我会在您想要更改它的情况下将其包括在内。