我有许多WORD文档,其中包含多个内容控件。我正在使用Excel文件来更新WORD文档。当我进行更新时,我需要插入一个描述更改的脚注。我可以更新内容控件的内容,但是插入脚注时遇到问题。这是我的代码:
Set cc = oRange.ContentControls(intCounter)
strOriginalDate = cc.Range.Text
If wrdDoc.ProtectionType <> wdNoProtection Then
wrdDoc.Unprotect strSheetPassword
End If
If wrdDoc.FormsDesign = False Then
wrdDoc.ToggleFormsDesign
End If
cc.Range.Text = strCOD
'
' Insert the footnote
'
oRange = wrdDoc.Range(cc.Range.End, cc.Range.End)
oRange.Select
Selection.MoveRight Units:=wdCharacter, Count:=1
Selection.TypeText Text:=" "
With Selection
With .FootnoteOptions
.Location = wdBottomOfPage
.NumberingRule = wdRestartContinuous
.StartingNumber = 1
.NumberStyle = wdNoteNumberStyleArabic
.LayoutColumns = 0
End With
.Footnotes.Add Range:=cc.Range, Text:="Case Opening Date changed from " & _
strOriginalDate & " to " & strCOD & " on " & Date, Reference:=""
End If
End With
wrdDoc.ToggleFormsDesign
wrdDoc.Protect Type:=wdAllowOnlyFormFields, Password:=strSheetPassword
wrdDoc.Save
当我到达Selection.MoveRight Units:=wdCharacter, Count:=1
行时,我收到一条错误消息Object doesn't support this property or method
。从本质上讲,我试图移动到控制的末尾,然后在下一步,我试图超越/超出控制范围。
当我注释掉该行及其后面的行时,我最终试图将脚注插入到内容控件中。这在With .FootnoteOptions
行失败,可能是因为我使用的内容控件是日期选择器。
答案 0 :(得分:1)
您是正确的,您无法在内容控件中添加脚注。解决方案正是您要做的事情 - 之后将其放入文档中。问题是您正在尝试使用Selection对象添加它。
由于您已在Document(oRange)的上下文中拥有Range,因此只需直接使用它:
'
' Insert the footnote
'
'Move the oRange to an "insertion point" after the control.
oRange.Start = cc.Range.End + 1
'Collapse it.
oRange.End = oRange.Start
'Add your space.
oRange.Text = " "
With oRange.FootnoteOptions
.Location = wdBottomOfPage
.NumberingRule = wdRestartContinuous
.StartingNumber = 1
.NumberStyle = wdNoteNumberStyleArabic
.LayoutColumns = 0
End With
oRange.Footnotes.Add Range:=oRange, Text:="Case Opening Date changed from " & _
strOriginalDate & " to " & strCOD & " on " & Date
真的没有理由去选择 - 它只是一个荣耀的范围,还有一个额外的好处,就是做了Word所做的所有烦人的事情,为了你的利益而且#34; ; (比如抓住尾随空间),同时用鼠标突出显示。
我还会注意到你可以省略Reference:=""
- 它默认设置为空字符串。您的With块中还有一个浮动End If
。