Похожие вопросы

Как правильно использовать вложенное условное Mergefield в Word 2010
МС офис: как заменить шаблон
VBA: поиск и замена текста
Почему ctrl + C случайно перестает работать в Microsoft Office? [дубликат]
В Word 2016 заголовки и нумерация списка
Создание сноски в MS Word?
Word игнорирует мои настройки "форматирования в соответствии с назначением" при вставке текста
Будут ли макросы Excel продолжать или замедляться после "отключения экрана" ПК, только не в режиме ожидания?
Слово VBA: как запустить выделение.Найти в заранее определенном диапазоне?
как удалить или изменить фон заполняет все таблицы в документе Word
Поиск и замена с помощью регулярных выражений в Microsoft Word
Как переместить панель стилей в Microsoft Word, когда сверху на экране?
Как вставить ссылку на рисунок в Word?
Microsoft Word 2016 проверка орфографии не работает
Печать нескольких листов с помощью слияния (Excel / Word)

Поиск макроса для увеличения числа на 1 в документе Word

У меня есть документ Word, который другие пользователи могут получить доступ и изменить (на том же компьютере).

в верхней части этого документа находится строка с надписью "Version # XXX".

Что я хотел бы, чтобы иметь возможность запустить макрос, который увеличит XXX на 1 и сохранить документ.

Это возможно? Как?

5
задан Máté Juhász
источник

2 ответов

вы можете создать свойство документа под названием (say) Revision. Затем вы должны иметь возможность отображать его в поле, и ваш код может читать и писать в него через:

myDocument.CustomDocumentProperties("Revision").Value
1
отвечен cybernetic.nomad 2018-03-06 21:39:41
источник

в случае, если кто-то когда-либо заинтересован, вот ответ, который я нашел.

1/ Вставьте поле (CTRL+F9) как "{ DOCVARIABLE VNUM }"

2 / Создайте макрос со следующим кодом:

    Sub IncrementVersion()

    On Error Resume Next
    With ActiveDocument
        .Variables.Add ("VNUM")
        On Error GoTo 0
        If IsNumeric(.Variables("VNUM")) = False Then
            .Variables("VNUM") = 1
        Else
            If .Saved = False Then
                .Variables("VNUM") = .Variables("VNUM") + 1
                Else
                    If MsgBox("No changes", vbOKCancel) = vbCancel Then
                    Exit Sub
                    Else
                    'nothing
                End If
            End If
        End If
        .Fields.Update
        .Save
        .Close
    End With
    End Sub

это прекрасно работает для того, что я искал.

1
отвечен Marco Polo 2018-03-08 03:17:51
источник

Другие вопросы microsoft-word microsoft-word-2010 vba