Осторожно: я думаю, есть лучшие способы достичь того, что вы хотите сделать, так как это неправильное кодирование.(Также, поскольку в буфере обмена есть ограничение не более 24 элементов), но для того, чтобы ваш код работал, вот мой ответ:
Чтобы скопировать текст в буфер обмена вместо его замены, вы можете простоиспользуйте метод .copy
.
Если вы замените свою строку:
Selection.Find.Execute Replace:=wdReplaceAll
на
Dim iCount As Long
Selection.Find.Execute
Selection.Copy
Do While Selection.Find.Found = True And iCount < 1000
iCount = iCount + 1
Selection.Find.Execute
Selection.Copy
Loop
, она должна работать.
Код просто копирует найденный предмет после каждого поиска.Selection.Find.Execute
ищет следующее изменение поиска каждый раз, когда оно появляется в коде.
Если поиск больше не найден (или слишком много поисков), цикл останавливается.