Как установить строковое значение для значения даты в ContentControl DatePicker в MS-Word с использованием VBA - PullRequest
1 голос
/ 30 мая 2019

У меня есть шаблон документа MS-Word с существующим QuickPart DatePicker Contentcontrol, импортированным из списка SharePoint.

Я хочу либо:

  • Назначить значение DatePickerdate для переменной 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 Ответ

1 голос
/ 30 мая 2019

У вашей рутины есть ряд проблем. Переменные doc и ccs не объявлены. Вы также пытаетесь «установить» strDate, но strDate является строковой переменной, а операторы «Set» используются только для объектных переменных. То же самое относится и к 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...