问题描述:
在用 Word VBA 编写自动添加书签的宏时,出现以下错误:

代码:
Sub AddBookmark(prefix As String)
Selection.HomeKey Unit:=wdLine, Extend:=wdExtend '这两行代码选中整一行
Selection.MoveEnd Unit:=wdLine, Count:=1
Set bookmarkName = Selection.Range
With ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:=prefix & "_" & bookmarkName
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
End Sub
查阅国内外的相关资料无果,只能自己 debug
由于前面使用 Selection 选中了整一行文本,而通过观察发现选中的整行文本实际上是包含换行符的,如下图:

于是猜测可能是该换行符引起的报错,于是在添加书签前多加入一行代码:
bookmarkName.End = bookmarkName.End - 1
用于取消选中最后的换行符,成功解决问题
在使用Word VBA编写宏添加书签时,遇到因选中行末换行符导致的错误。通过调试发现,选中的整行文本包含了换行符。为解决此问题,博主在添加书签前移除了选区末尾的换行符,成功避免了错误。这一解决方案对于处理类似问题具有参考价值。

1566

被折叠的 条评论
为什么被折叠?



