【发布时间】:2019-04-08 03:33:16
【问题描述】:
我有一个 Word 模板,其中有很多书签分配到其中的某些位置。 我创建了一个带有 TextBoxes 的 UserForm 以将文本插入到这些位置/书签中。
Bookmarks 和 TextBoxes 的名称匹配,但 TextBoxes 名称前面添加了“TextBox_”。 我还想出了如何遍历选项卡的所有文本框(例如)。
现在我想在循环时从 TextBoxes 名称中删除“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:出于某种原因,我从一开始的“嗨”就被删掉了。所以从这里“大家好”!
【问题讨论】:
-
“不会工作”不能很好地描述您的实际问题。你有错误吗?
-
ActiveDocument.Bookmarks(Replace(ctl.Name, "TextBox_", "")).Range.Text = ctl.Value -
对不起,你是对的!按下按钮后,我收到以下错误消息:“编译错误:无效使用属性”并且以下代码被突出显示:
code.Bookmarks(Replace(ctl.Name, "TextBox_", "")) = -
从您的第二条评论中添加代码 (.Range.Text) 后,我收到以下错误消息:“运行时错误 '5941': 请求的集合成员不存在。”整行代码以黄色突出显示:
codeActiveDocument.Bookmarks(Replace(Steuerelement.Name, "TextBox_", "")).Range.Text = Steuerelement.Value -
好的,我搞定了!我有更多没有相应书签的文本框!所以我猜那些不存在的书签是“不存在的集合成员”!所以你的解决方案最终奏效了。太感谢了! :) 接下来做什么?你会把它作为答案发布吗?抱歉,我是新人...