【问题标题】:VBA - Runtime Error when clicking out of rich text field on ms-wordVBA - 单击 ms-word 上的富文本字段时出现运行时错误
【发布时间】:2019-03-28 13:27:22
【问题描述】:

对 VBA 不太熟悉,所以我觉得这可能是一个相当简单的问题,但我找不到我的问题的解决方案。

在 ms-word 中,我制作了一个表单,最初,我希望根据与表单的不同交互来隐藏/显示表单的特定方面(代码如下),在另一篇文章的帮助下,工作正常,但现在我添加了导致运行时错误的文本字段。

现在我的问题是 ContentControlOnExit 函数被应用于当用户单击文本字段时,我只想在用户单击复选框时应用该函数,这会导致运行时错误。

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)

    Dim bChecked As Boolean
    bChecked = (ContentControl.Checked = True)

    If ContentControl.Title = "checkbox1" Then
        ActiveDocument.Bookmarks("approve").Range.Font.Hidden = bChecked
    End If

    If ContentControl.Title = "checkbox2" Then
        ActiveDocument.Bookmarks("sign1").Range.Font.Hidden = bChecked
        ActiveDocument.Bookmarks("sign2").Range.Font.Hidden = bChecked
    End If

    If ContentControl.Title = "checkbox3" Then
        ActiveDocument.Bookmarks("note").Range.Font.Hidden = bChecked
    End If

End Sub

我可以添加任何简单的语句,以便在单击文本字段时不进行此检查吗?

【问题讨论】:

标签: vba checkbox ms-word ms-office


【解决方案1】:

您可以使用内容控件的Type 属性来检查它是否是一个复选框: https://docs.microsoft.com/en-us/office/vba/api/word.contentcontrol.type

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, _
                                          Cancel As Boolean)
    'exit if the control is not a checkbox
    If ContentControl.Type <> wdContentControlCheckbox Then Exit Sub

    'rest of your code here         

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多