vba - MS Word:替换用户表单中的书签文本而不是使用 VBA 添加
问题描述
VBA新手在这里。
我刚刚创建了一个用户表单,允许我的团队创建求职信。
下面的按钮出现在文档正文中的“说明”部分。当他们点击它时,它会显示我需要填写的表格。
Private Sub EditFormButt_Click()
CoverLetterForm.Show
End Sub
表单当前具有预填充的占位符文本。我希望我的团队能够替换文本。现在,发生的情况是,当他们单击我的“确定”按钮(要遵循的代码)时,占位符文本仍然存在,并且他们的新文本被添加。
例如:
致: Paul Daniels先生 Sarah Jones 女士
21 New Order Street
London
England
亲爱的 Paul Daniels先生 Sarah Jones 女士
Sarah Jones 女士是占位符文本,Paul Daniels 先生是更新后的文本。
我需要任何新条目来替换占位符文本中的任何内容,但不要删除尚未更新的任何内容,因为有时,他们可能只想更改收件人的姓名而不是人员的地址。如果他们想更正拼写错误,而不必开始一个全新的文档,这也很有用。
这是我的 OKButt 代码:
Private Sub OKButt_Click()
Dim bmRecName As Range
Set bmRecName = ActiveDocument.Bookmarks("bmRecName").Range
bmRecName.Text = Me.RecName.Value
Dim bmRecAddress As Range
Set bmRecAddress = ActiveDocument.Bookmarks("bmRecAddress").Range
bmRecAddress.Text = Me.RecAddress.Value
CoverLetterForm.Hide
End Sub
谢谢你的帮助 :)
解决方案
好的,我想我已经找到了答案,但是如果有人有更优雅的解决方案,我全神贯注!
Private Sub OKButt_Click()
Dim bmRecName As Range
Set bmRecName = ActiveDocument.Bookmarks("bmRecName").Range
bmRecName.Text = Me.RecName.Value
ActiveDocument.Bookmarks.Add "bmRecName", bmRecName
Dim bmRecAddress As Range
Set bmRecAddress = ActiveDocument.Bookmarks("bmRecAddress").Range
bmRecAddress.Text = Me.RecAddress.Value
ActiveDocument.Bookmarks.Add "bmRecAddress", bmRecAddress
CoverLetterForm.Hide
End Sub
基本上添加以下代码:
ActiveDocument.Bookmarks.Add "bmRecAddress", bmRecAddress
推荐阅读
- c# - 如何将 List 对象插入到 sqlite?
- android - 带有一组颜色动态可绘制对象的 Android 图像按钮
- python - 查找与条件匹配的行中的最后一个元素
- javascript - 如何使用服务工作者内部的获取请求来模拟真实的“访问”
- python - 为什么禁止使用名为“None”的成员变量(“属性”)?
- angular - 如何在Angular中单击菜单时导航到外部URL
- angular - “在 '@angular/cdk/platform' 中找不到导出 '_supportsShadowDom'
- ngrx - 热修复ngrx自动覆盖所有其他商店时调度任何
- php - 显示具有多对多关系laravel 6的数据
- python - 如果已经安装了 python 3.6,如何在 Ubuntu 中运行 python 3.7