VBA新手在这里。
我刚刚创建了一个用户表单,可让我的团队创建求职信。
下面的按钮出现在文档的“说明”部分中。当他们单击它时,它显示了我需要填写的表格。
Private Sub EditFormButt_Click()
CoverLetterForm.Show
End Sub
该表单当前具有预填充的占位符文本。我希望我的团队能够替换文本。现在,发生的是,当他们单击我的“确定”按钮(遵循代码)时,占位符文本仍然保留,并添加了新文本。
例如:
致:保罗·丹尼尔斯先生女士。莎拉·琼斯(Sarah Jones)
21新秩序街
伦敦
英国
尊敬的保罗·丹尼尔斯先生女士。莎拉·琼斯(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
感谢您的帮助:)
答案 0 :(得分:0)
好吧,我想我已经找到了答案,但是如果有人能找到一个更优雅的解决方案,我将为您服务!
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
答案 1 :(得分:0)
更简单:
Private Sub OKButt_Click()
Dim bmRng As Range
With ActiveDocument
Set bmRng = .Bookmarks("bmRecName").Range
bmRng.Text = Me.RecName.Value
.Bookmarks.Add "bmRecName", bmRng
Set bmRng = .Bookmarks("bmRecAddress").Range
bmRng.Text = Me.RecAddress.Value
.Bookmarks.Add "bmRecAddress", bmRng
CoverLetterForm.Hide
End With
End Sub