2

我有一个包含这样的编号列表的 Word 文档

  1. 项目 1
  2. 第 2 项
  3. 第 3 项

列表样式为“列表段落”。“列表段落”的左缩进为 0.5”。如果我们运行以下代码重新应用样式“列表段落”,样式的左缩进现在是 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 方法会更改样式“列表段落”的左缩进。

在应用代码之前和之后,样式的描述是

"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 中都发现了相同的行为

4

1 回答 1

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 =开头的中间行,但我想如果您也想更改它,我会将其包括在内。

于 2011-10-13T22:27:55.573 回答