我无法通过VBA将文本直接插入书签

时间:2019-05-22 00:27:00

标签: vba ms-word

'试图通过VBA将文本直接插入书签

'尝试了很多东西,但没有任何效果。

'有人可以指出我在哪里弄错了吗?

Sub AddBookMark()

Dim BMName As String
Dim Contents As String

sText = "BM1"
Contents = "Testing"

With ActiveDocument.Bookmarks
 .Add Range.Text:=Contents
 .Add Name:=BMName
 .DefaultSorting = wdSortByName
 .ShowHidden = False
End With
End Sub

“编译错误:语法错误

1 个答案:

答案 0 :(得分:0)

您不能为文档中尚不存在的文本添加书签。换句话说,您必须首先选择要包含在书签中的文本。如果文本不存在,则必须插入文本,然后可以选择文本,最后插入必要的书签将其包围。

如果您打开了VBE,Visual Basic编辑器,并查看了您的代码,您将看到红色的语句Add Range.Text:=Contents,这会引起语法错误,因为Bookmarks.Add方法中没有此类属性。

即使通过Bookmarks.Add方法更正后,您的代码仍然会失败,因为字符串变量BMName永远不会被赋值,并且BookMark名称不能为空。

下面是您应该学习的例程的修改代码:

Sub AddBookMarkRevised()

Dim BMName As String
Dim Contents As String
Dim rng As Range

BMName = "BM1"
Contents = "Testing"

Set rng = Selection.Range
rng.Text = Contents

With ActiveDocument.Bookmarks
 .Add BMName, rng
 .DefaultSorting = wdSortByName
 .ShowHidden = False
End With
End Sub