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

时间:2019-05-30 16:47:46

标签: vba string datepicker ms-word contentcontrol

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

我想要:

  • 将DatePicker日期的值分配给Date变量-或-
  • 将字符串变量设置为DatePicker中日期的字符串值

然后我可以使用该数据基于从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 =”。

1 个答案:

答案 0 :(得分:1)

您的例程有很多问题。未声明变量doc和ccs。您还尝试“设置” strDate,但是strDate是一个字符串变量,“设置”语句仅用于对象变量。 PODate也是如此,您不使用Set命令来加载日期。

以下是修订的代码,供您查看:

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