вставить дату в текстовом документе - PullRequest
2 голосов
/ 10 августа 2010

Я работаю над документом Word, у которого есть таблица на каждой странице.Каждая таблица содержит несколько вхождений слова «Datum».Если дважды щелкнуть это слово «Datum», это слово следует заменить системной датой.И эта дата должна быть «заморожена», то есть она не должна адаптироваться при открытии документа в другой день.

Кто-нибудь может мне помочь с кодом для этого?

Ответы [ 2 ]

2 голосов
/ 10 августа 2010

Вы можете сделать это, используя поле макроса:

  • Нажмите Ctrl + F9, чтобы создать новое поле
  • Введите следующий текст в фигурных скобках:

    MACROBUTTON  InsertDateTime Datum
    

    Результат будет выглядеть следующим образом:

    { MACROBUTTON  InsertDateTime Datum }
    
  • Нажмите Alt + F9 для переключения отображения кода поля

Это покажет слова встроенный Вставить дату диалоговое окно.Если вы не хотите отображать диалоговое окно, вы можете заменить InsertDateTime именем пользовательского макроса VBA, например, MyModule.MyInsertDate.Этот макрос заменит поле с текущей датой:

Public Sub Test()
    Selection.Text = Now
End Sub
0 голосов
/ 17 января 2017

Попробуйте сделать каждый Datum Field {MacroButton datumToDate Datum}, который вызывает Word VBA:

Sub datumToDate()
    Selection.InsertDateTime Format(Now(), "yyyy-mm-dd")
End Sub

Очевидно, вы можете свободно редактировать yyyy-mm-dd для любого действительного формат времени .Это должно использовать InsertDateTime объекта выбора для замены «текущего выделения», здесь ваше поле помечено как Datum.Он заменяет только текущий Datum, потому что он уходит от того места, где вы были, когда начинали Sub.

Чтобы активировать поля MacroButton, вам нужно будет дважды щелкнуть мышью, если вы не запустите

Sub AutoOpen()
    Options.ButtonFieldClicks = 1
End Sub

в расположении ThisDocument.Я советую против этого, потому что для кого-то легко случайно щелкнуть элемент данных в старой таблице и установить дату в «Сейчас», и я не уверен, что метод выбора будет работать, если вы не дважды щелкнете по полю (хотя это должно произойти).

...