如何使用 VBA 将字符串值设置为 MS-Word 中 ContentControl DatePicker 中的日期值

How can I set a string value to the date value in a ContentControl DatePicker in MS-Word using VBA

我有一个 MS-Word 文档模板,其中包含从 SharePoint 列表导入的现有 DatePicker Contentcontrol QuickPart。

我想:

然后我可以根据从 DatePicker 值中读取的日期使用该数据计算未来日期并将其放置在我的文档中。

我使用关键字日期选择器、内容控制、VBA、Word 研究了许多网站。没有任何示例接近我正在尝试做的事情。

Sub AddDates()
'
' AddDates Macro
    Dim PODate As Date
    Dim strDate As String
    Set doc = ActiveDocument
    Set ccs = doc.SelectContentControlsByTag("wqgr")
    Set strDate = ccs.ContentControl.Range.Text
    Set PODate = CDate(strDate)
    Selection.GoTo What:=wdGoToBookmark, Name:="Date1"
    Selection.TypeText Text:=Format(PODate + 7, "mm/dd/yyyy")
End Sub

编译错误:需要对象,突出显示代码中的 "strDate = "。

您的例程有很多问题。变量 doc 和 ccs 没有声明。您还试图 "Set" strDate 但 strDate 是一个字符串变量, "Set" 语句仅用于对象变量。 PODate也是一样,你不用Set命令来加载Date。

下面是修改后的代码供您查看:

Sub AddDates()
'
' AddDates Macro
    Dim PODate As Date
    Dim strDate As String
    Dim doc As Word.Document
    Dim ccs As Word.contentControl

    Set doc = ActiveDocument
    Set ccs = doc.SelectContentControlsByTag("wqgr").Item(1)
    strDate = ccs.Range.Text
    PODate = CDate(strDate)
    Selection.GoTo What:=wdGoToBookmark, Name:="Date1"
    Selection.TypeText Text:=Format(PODate + 7, "mm/dd/yyyy")
End Sub