vba 无法清除单词 ContentControl 内容

问题描述

内容控件“内容无法编辑”复选框未勾选,我用代码设置

LockContets = False

,但即便如此,仍然出现错误“您不能编辑此选择,因为它受到保护”

代码如下:

Sub test()
  Dim CC As ContentControl  
  For Each CC In ActiveDocument.ContentControls
      Debug.Print CC.Type
      Debug.Print CC.Range.Text
      CC.LockContentControl = True
      CC.LockContents = False
      CC.Range.Text = ""    <--error here


  Next CC
End Sub

为什么会这样?怎么解决

解决方法

内容控件的类型很多,你只需要添加一个 if 条件来检查内容控件类型是否为文本

Sub Test()
  Dim CC As ContentControl
  For Each CC In ActiveDocument.ContentControls
      CC.LockContents = False
      If CC.Type = wdContentControlRichText Or CC.Type = wdContentControlText Then
        CC.Range.Text = ""
      End If
  Next CC
End Sub
,

您不能从下拉列表、复选框或图片内容控件中清除文本,因为它们没有可编辑的文本属性。

尝试以下方法:

Sub Test()
Dim CC As ContentControl
For Each CC In ActiveDocument.ContentControls
  With CC
    .LockContentControl = True
    .LockContents = False
    Select Case .Type
      Case wdContentControlRichText,wdContentControlText,wdContentControlComboBox,wdContentControlDate
        .Range.Text = ""
      Case wdContentControlDropdownList
        .Type = wdContentControlText
        .Range.Text = ""
        .Type = wdContentControlDropdownList
      Case wdContentControlCheckBox: .Checked = False
      Case wdContentControlPicture: .Range.InlineShapes(1).Delete
    End Select
  End With
Next CC
End Sub