Форум по VBA, Excel и Word

Word => Макросы в Word => Тема начата: Посетитель от 21 октября 2021, 17:28

Название: Word VBA Макросы. Вставка скопированного текста в другой макрос.
Отправлено: Посетитель от 21 октября 2021, 17:28
Сначала пользователь выделяет часть текста в открытом документе и запускает первый макрос, который копирует выделенный текст в переменную.
Затем пользователь переводит курсор в другое место и запускает второй макрос, который должен вставить ранее скопированный текст из переменной в то место, куда пользователь поставил курсор.
Что неправильно в моих макросах? Почему второй макрос не видит значение из переменной?

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

Sub макрос2()
    Selection.Text = "(В редакции " + DAT + ")"
End Sub
Название: Re: Word VBA Макросы. Вставка скопированного текста в другой макрос.
Отправлено: Администратор от 21 октября 2021, 17:37
Если переменная создана внутри процедуры, то она находится в памяти, пока работает эта процедура.
Чтобы переменная сохранилась после процедуры, нужно создать переменную в модуле, вверху модуля.

Private DAT

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

Sub Макрос2()
    Selection.Text = "(В редакции " + DAT + ")"
End Sub
Название: Re: Word VBA Макросы. Вставка скопированного текста в другой макрос.
Отправлено: Посетитель от 21 октября 2021, 17:44
Спасибо огромное!