'试图通过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
“编译错误:语法错误
答案 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