VBA 和 Word:剪切文本框名称以匹配书签的名称
VBA and Word: Cutting a TextBox name to match that of a Bookmark
我有一个 Word 模板,其中的某些地方分配了很多书签。
我创建了一个带有文本框的用户窗体以将文本插入到 places/Bookmarks.
书签和文本框的名称匹配,但文本框名称前面添加了 "TextBox_"。
我还想出了如何循环遍历选项卡的所有文本框(例如)。
现在我想在循环时从文本框名称中删除 "TextBox_",并将它们的值分配给书签。我想使用
来做到这一点
Replace(ctl.Name, "TextBox_", "")
但这行不通。有人可以告诉我出了什么问题或帮我找到解决方案吗?我现在脑子里一片空白...
提前致谢!
到目前为止我的代码:
Private Sub apply_textboxes()
Dim ctl As Control
For Each ctl In Me.MultiTab1.Pages(Me.MultiTab1.Value).Controls
If TypeName(ctl) = "TextBox" Then
ActiveDocument.Bookmarks(Replace(ctl.Name, "TextBox_", "")) = ctl.Value
End If
End Sub
(在我的用户窗体中,一个按钮正在调用 apply_textboxes 子。)
PS: 由于某些原因,我的 "Hi" 从一开始就被删掉了。所以 "Hi everyone" 从这里开始!
这应该有效:
ActiveDocument.Bookmarks(Replace(ctl.Name, "TextBox_", "")).Range.Text = ctl.Value
你需要 .Range.Text
我有一个 Word 模板,其中的某些地方分配了很多书签。 我创建了一个带有文本框的用户窗体以将文本插入到 places/Bookmarks.
书签和文本框的名称匹配,但文本框名称前面添加了 "TextBox_"。 我还想出了如何循环遍历选项卡的所有文本框(例如)。
现在我想在循环时从文本框名称中删除 "TextBox_",并将它们的值分配给书签。我想使用
来做到这一点Replace(ctl.Name, "TextBox_", "")
但这行不通。有人可以告诉我出了什么问题或帮我找到解决方案吗?我现在脑子里一片空白...
提前致谢!
到目前为止我的代码:
Private Sub apply_textboxes()
Dim ctl As Control
For Each ctl In Me.MultiTab1.Pages(Me.MultiTab1.Value).Controls
If TypeName(ctl) = "TextBox" Then
ActiveDocument.Bookmarks(Replace(ctl.Name, "TextBox_", "")) = ctl.Value
End If
End Sub
(在我的用户窗体中,一个按钮正在调用 apply_textboxes 子。)
PS: 由于某些原因,我的 "Hi" 从一开始就被删掉了。所以 "Hi everyone" 从这里开始!
这应该有效:
ActiveDocument.Bookmarks(Replace(ctl.Name, "TextBox_", "")).Range.Text = ctl.Value
你需要 .Range.Text