2013-09-20 3 views
2

У меня есть переменная (strLastname), которую я использую для отправки строки в закладку. Это хорошо работает. Я также хочу использовать эту переменную для замены временного текста «Имя>» в длинном документе.MS WORD VBA Найти Заменить текст с помощью переменной

Это то, что у меня есть сейчас.

Sub cmdOK_Click() 
    Dim strLastname As String ' from dialogue box "BoxLastname" field 
    strLastname = BoxLastname.Value 
.... 
    End sub 

Макрос, который не работает:

Sub ClientName() 

Selection.Find.ClearFormatting 
Selection.Find.Replacement.ClearFormatting 
With Selection.Find 
    .Text = "Name>" 
    .Replacement.Text = strLastname?????? 

      'Selection.TypeText (strLastname) ???? 
       'How to use the variable from the Dialogue Box - strLastname???? 

    End With 
    Selection.Find.Execute Replace:=wdReplaceAll 
End Sub 

Я попытался . Replacement.Text = strLastname and .Replacement.Text = BoxLastname.Value но никто не работает.

ответ

3

Быстрый поиск от Google находит эту ссылку http://msdn.microsoft.com/en-us/library/office/aa211953(v=office.11).aspx

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

With ActiveDocument.Content.Find 
    .Forward = True 
    .Wrap = wdFindStop 
    .Execute FindText:="Text", ReplaceWith:="Tax", Replace:=wdReplaceAll 

, который заменяет все вхождение текста с налога .... есть это то, что вы после ??

работы с переменными слишком

OldWord = "VAT" 
NewWord = "Text" 

With ActiveDocument.Content.Find 
    .Forward = True 
    .Wrap = wdFindStop 
    .Execute FindText:=OldWord, ReplaceWith:=NewWord, Replace:=wdReplaceAll, Matchcase:=True 
End With 

Добавить, MatchCase: = True в конце, чтобы исправить случай задачи (измененную) теперь над

3-й результаты модификации в этом

Dim strLastname As String ' from dialogue box "BoxLastname" field 
strLastname = BoxLastname.Value 

OldWord = "Name" 
NewWord = strLastName 

With ActiveDocument.Content.Find 
    .Forward = True 
    .Wrap = wdFindStop 
    .Execute FindText:=OldWord, ReplaceWith:=NewWord, Replace:=wdReplaceAll, Matchcase:=True 
End With 
+0

Спасибо. Моя цель состоит в том, чтобы заменить несколько случаев временного слова переменной, взятой в диалоговом окне, в котором было введено имя Клиена. Это доступно, чтобы отправить строку в закладку ans thats, которая хорошо работает. Но как использовать эту переменную (strLastname) для замены временного текста «Имя» в моем очень длинном документе? –

+0

измененный ответ для переменных ... они пошли в верхний регистр для меня ... проверяя это сейчас – user1302114

+0

Я думаю, что это ответ, но если вам нужно больше разъяснений, просто спросите, если нет, и мы отсортированы, пожалуйста, отметьте ответ – user1302114

Смежные вопросы