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

我无法通过VBA将文本直接插入书签,vba,ms-word,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 = wdSortByNam

'尝试通过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

'编译错误:语法错误

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

如果打开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

什么是范围。文本:=内容?有一个
范围
参数。错误消息中的信息比您提供的更多。请在您的帖子中包含完整、完整、准确的错误消息,并指出发生错误的行。非常感谢您花时间如此彻底地回答我的问题。您的解释和修改后的代码都很有帮助。