Word VBA技术:处理书签
2023-03-07 09:14:56 时间
标签:Word VBA
在Word中,有两类书签:
1.“占位符”书签(Placeholder Bookmarks),即在文档中单击某处,然后插入的书签。
2.“封闭”书签(Enclosing Bookmarks),即选择某文本后插入的书签。
有几种将文本插入到书签处的方法。使用的方法取决于后面是否要从书签处获取文本。
在书签处插入文本最常见的代码示例如下:
ActiveDocument.Bookmarks("完美Excel").Range.Text = "excelperfect"
即,在书签“完美Excel”处插入文本“excelperfect”。
在这种情形下,如果是“占位符”书签,则会在书签处插入文本;如果是“封闭”书签,则在书签位置插入文本的同时会删除书签。
代码:
ActiveDocument.Bookmarks("完美Excel").Range.InsertAfter "公众号"
ActiveDocument.Bookmarks("完美Excel").Range.InsertBefore "微信"
在这两种情形下,如果是“占位符”书签,则会在书签后插入文本;如果是“封闭”书签,则会在书签位置之后或之前插入文本。
要获取书签处的文本,使用代码:
strBookmark = ActiveDocument.Bookmarks("完美Excel").Range.Text
注意,这种情形下的书签应该是“封闭”书签。
如果想将文本插入“占位符”书签(使其成为“封闭”书签),以便以后可以从中获取文本,该怎么办?如果书签已经是“封闭”书签,想替换其中的文本,该怎么办?VBA中没有可以实现这种要求的命令,需要做的是用插入的文本替换书签(此时书签会被删除),然后再围绕插入的文本重新创建书签。示例代码如下:
Dim BookmarksRange As Range
Set BookmarksRange = ActiveDocument.Bookmarks("完美Excel").Range
BookmarksRange.Text = "666"
ActiveDocument.Bookmarks.Add Name:="完美Excel", Range:=BookmarksRange
如果文档中有许多书签需要更新,那么上述代码会反复重复,因此最好的方案是将其作为带有参数的子程序供主程序调用,代码如下所示:
Sub UpdateBookmark(BookmarkToUpdate As String, TextToUse As String)
Dim BookmarksRange As Range
Set BookmarksRange =
ActiveDocument.Bookmarks(BookmarkToUpdate).Range
BookmarksRange.Text = TextToUse
ActiveDocument.Bookmarks.Add BookmarkToUpdate, BookmarksRange
End Sub
调用代码如下:
UpdateBookmark “书签名”, ”要插入的文本”
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的