Статьи из блога

Статьи из блога

Вставка завтрашней даты

Рубрика: Макросы
Метки: |
Четверг, 24 января 2008 г.
Просмотров: 10900
Подписаться на комментарии по RSS
Версия для печати

[Ссылки на статью]

Представим себе ситуацию: вы готовите документ, в конец которого или в любое место, где находится курсор ввода, необходимо вставить завтрашнюю дату (например, вы заранее подготовили нужный документ). Стандартными средствами редактора Word можно вставить лишь текущую дату, либо ввести эту дату вручную.

 

Но можно поступить проще и написать простенький макрос для этих целей:

Sub insertDate()
With Selection
   .InsertAfter Format(Date + 1, "dd mmmm yyyy")
   .Collapse Direction:=wdCollapseEnd
End With
End Sub

Меняя в фрагменте кода (Date + 1, "dd mmmm yyyy") цифру, знак сложения (на знак вычитания) или формат даты можно соответственно изменять и требуемую дату для вставки.

 

Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:

Автоматическая запись макроса

Создание макроса из готового кода

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Еще записи по вопросам использования Microsoft Word:

Комментариев: 7

  1. Аноним
    17.05.2012 в 21:36 | #1

    А как сделать сегодняшнюю дату, но прибавить 6 лет?

  2. 20.05.2012 в 17:03 | #2

    Уже публиковалась статья на сайте: http://wordexpert.ru/page/vstavka-zavtrashney-datyi

  3. 20.05.2012 в 17:39 | #3

    Прошу прощения, не заметил, что нахожусь в этой заметке. Попробуйте такой код:

    Sub insertYearPlus6()
    Dim myYear
    myYear = Now
    With Selection
       .InsertAfter Format(Date, "dd mmmm  ")
       .InsertAfter Year(myYear) + 6
       .Collapse Direction:=wdCollapseEnd
    End With
    End Sub

  4. Илья
    06.10.2012 в 14:15 | #4

    Добрый день, а не подскажите как сделать так, чтобы при вставке этого макроса в шаблон и последующем его (шаблона) открытие дата автоматически обновилась?

  5. 12.10.2012 в 11:48 | #5

    Обратитесь на наш форум, там помогут.

  6. Aazam
    23.01.2014 в 17:12 | #6

    Есть еще одна возможность - в поля WORD можно вписывать формулы. как это сделать подробно расписано на http://office.microsoft.com/ru-ru/word-help/HA102329800.aspx

    Вот так должны выглядеть формулы для определения числа, месяца и года завтрашнего дня

    В приведенных ниже формулах надо заменить

    MMMM на поле {DATE \@ M}

    YYYY на поле {DATE \@ YYYY}

    DDDD на поле {DATE \@ d}

    Число :

    {

    =IF(((MMMM2)+(MMMM4)+(MMMM6)+(MMMM9)+(MMMM11)+(DDDD+1>31)=6)+

    ((MMMM1)+(MMMM2)+(MMMM3)+(MMMM5)+(MMMM7)+(MMMM8)+(MMMM10)+(MMMM12)+(DDDD+1>30)=9)+

    ((MMMM=2)+(OR(MOD(YYYY;400)=0; AND(MOD(YYYY;4)=0; MOD(YYYY;100)0)))+(DDDD+1>29 )=3)+

    ((MMMM=2)+NOT(OR(MOD(YYYY;400)=0; AND(MOD(YYYY;4)=0; MOD(YYYY;100)0)))+(DDDD+1>28 )=3)>0; 1; DDDD+1)

    \# 00

    }

    месяц:

    {

    =IF(((MMMM2)+(MMMM4)+(MMMM6)+(MMMM9)+(MMMM11)+(DDDD+1>31)=6)+

    ((MMMM1)+(MMMM2)+(MMMM3)+(MMMM5)+(MMMM7)+(MMMM8)+(MMMM10)+(MMMM12)+(DDDD+1>30)=9)+

    ((MMMM=2)+(OR(MOD(YYYY;400)=0; AND(MOD(YYYY;4)=0; MOD(YYYY;100)0)))+(DDDD+1>29 )=3)+

    ((MMMM=2)+NOT(OR(MOD(YYYY;400)=0; AND(MOD(YYYY;4)=0; MOD(YYYY;100)0)))+(DDDD+1>28 )=3)>0; MMMM+1; MMMM)

    \# 00}

    Год:

    {=IF(AND(MMMM=12; DDDD+1>31 );YYYY+1;YYYY;) \# 0000}

  7. Аноним
    23.01.2014 в 17:13 | #7

    Эти формулы легко скорректировать, чтобы сдвинуть даты на произвольное число дней вперед и назад

Оставьте комментарий!

(обязательно)

^ Наверх