我是word2003的,这代码在我那很正常啊,没有出现错误,如果不能建立索引,是不是你输入的内容中根本就没有关键词啊。
测试方法:新开一个word,随便输入一些内容,但必须包含学校、编辑2个关键词,然后复制下面的代码到当前document的vba里,
运行test会立即看到效果的。
Sub Test()
BiaoJiAll "编辑|学校" ''
End Sub
Sub BiaoJiAll(ByVal bStr As String)
''bStr为关键词,用|分割
On Error Resume Next
Dim i As Long, w1 As String, ww
ww = Split(bStr, "|")
If UBound(ww) >= 0 Then
For i = 0 To UBound(ww)
Selection.HomeKey Unit:=wdStory ''移动到开始
With Selection.Find
.ClearFormatting
.Text = ww(i)
.Execute
If .Found Then ''如果找到了则添加到索引
ActiveDocument.Indexes.MarkAllEntries Range:=Selection.Range, Entry:= _
ww(i), EntryAutoText:=ww(i), CrossReference:="", CrossReferenceAutoText _
:="", BookmarkName:="", Bold:=False, Italic:=False
End If
End With
Next
''定位到最后
Selection.EndKey Unit:=wdStory
''在文档最后插入索引
ThisDocument.Indexes.Add Range:=Selection.Range, HeadingSeparator:= _
wdHeadingSeparatorNone, Type:=wdIndexIndent, RightAlignPageNumbers:= _
True, NumberOfColumns:=2, SortBy:=wdIndexSortByStroke, IndexLanguage _
:=wdSimplifiedChinese
End If
End Sub