Word VBA Макросы. Вставка скопированного текста в другой макрос.

Автор Посетитель, 21 октября 2021, 17:28

Посетитель

Сначала пользователь выделяет часть текста в открытом документе и запускает первый макрос, который копирует выделенный текст в переменную.
Затем пользователь переводит курсор в другое место и запускает второй макрос, который должен вставить ранее скопированный текст из переменной в то место, куда пользователь поставил курсор.
Что неправильно в моих макросах? Почему второй макрос не видит значение из переменной?

Sub Макрос1()
    Selection.Copy
    DAT = Selection.Text
End Sub

Sub макрос2()
    Selection.Text = "(В редакции " + DAT + ")"
End Sub

Администратор

Если переменная создана внутри процедуры, то она находится в памяти, пока работает эта процедура.
Чтобы переменная сохранилась после процедуры, нужно создать переменную в модуле, вверху модуля.

Private DAT

Sub Макрос1()
    Selection.Copy
    DAT = Selection.Text
End Sub

Sub Макрос2()
    Selection.Text = "(В редакции " + DAT + ")"
End Sub