使用VBA使用封闭书签中的文本填充UserForm标签标题

时间:2018-04-20 13:48:41

标签: vba ms-word

我正在创建一个MS Word文档,顶部有一个表格,其中包含“姓名”,“日期”,“技能已验证”等单元格以及下面单独部分中的10个问题。

我正在创建一个UserForm,让所有参与者都可以更轻松地在PC上完成评估。

我正在使用MultiPage在UserForm的单独页面上显示每个问题,并通过使用随附的书签引用文档上的问题来显示我试图填充标签的标题的问题。

请注意:其他工作人员将来可能会编辑或管理此文档,其中大多数人都没有VBA或UserForms的经验,这是我正在尝试的主要焦点(加上它的有效率吗?)。

我已阅读书签(wordmvp),我了解如何设置书签。

我无法弄清楚如何获取随附书签的内容以在UserForm初始化时填充Label Caption。

我查看了以下信息,但未能理解它。 https://msdn.microsoft.com/en-us/vba/word-vba/articles/bookmarks-object-word https://msdn.microsoft.com/en-us/vba/word-vba/articles/captionlabels-object-word https://forum.solidworks.com/thread/209704

假设在UserForm中使用了默认名称,并且问题“这是一个测试问题吗?”在我的文档中名为“bookmark1”的封闭书签中;下面是我能提出的最接近的工作代码。

Private Sub UserForm_Initialize()

Dim question1 As String
question1 = ActiveDocument.Bookmarks("bookmark1")

    With Selection
    Label1.Caption = question1
    End With

End Sub

然而,这会在label1标题中显示字符串“bookmark1”,而不是“这是一个测试问题吗?”。

我无法弄清楚如何编辑代码以使其显示书签中的文本而不是label1标题中的字符串“bookmark1”(我甚至不确定它是否可能?)。

任何人都可以分享我出错的地方并解释如何修改它吗?

1 个答案:

答案 0 :(得分:2)

书签可以声明为OFN_NONETWORKBUTTON。因此,它有很多可以访问的属性:

enter image description here

您几乎可以访问OFN_SHAREAWAREObjectb.Application中的任何内容。

b.Range

此外,根据您的具体操作,您可以在选择中包含多个书签。因此,您可以从选择中访问b.Parent集合,并将其文本连接到Private Sub UserForm_Initialize() Dim b As Bookmark Set b = ActiveDocument.Bookmarks("bookmark1") Label1.Caption = b.Range.Text End Sub

Bookmarks