2011-12-23 2 views
0

Я хотел бы сделать заменить все с помощью VBnet 2003 и MSWord 2007VBnet MSWord Автоматизация «Заменить текст»

я попал в этот

Dim Selection As Word.Selection 
Selection.Find.ClearFormatting() 
Selection.Find.Replacement.ClearFormatting() 
Selection.Find.Replacement.Font.Underline = Word.WdUnderline.wdUnderlineSingle 
With Selection.Find 
    .Text = "Text" 
    .Replacement.Text = "Replacement" 
    .Forward = True 
    .Format = True 
    .Wrap = Word.WdFindWrap.wdFindContinue 
    .MatchCase = False 
    .MatchWholeWord = False 
    .MatchByte = False 
    .MatchAllWordForms = False 
    .MatchSoundsLike = False 
    .MatchWildcards = False 
    .MatchFuzzy = False 
End With 
Selection.Find.Execute(Replace:=Word.WdReplace.wdReplaceAll) 

Он разбивает каждую строку с выбором, утверждая, что " В экземпляре объекта не задана ссылка на объект." Я получил код, выполнив макросъемку, и он отлично работал как макрос, но мне не нужны макросы в моем документе. Как это исправить?

ответ

2

Для начала вам нужно соединить с Word и документом. Этот код предполагает, что Word работает с правильным документом, загруженным и отображаемым.

Dim WordApplication As Word.Application = GetObject(, "Word.Application") 
Dim Document As Word.Document = WordApplication.ActiveDocument 
Document.Select() 
Dim Selection As Word.Selection = Document.ActiveWindow.Selection 
' Do your thing here. 
+0

Все, что я нужен был Dim Выбор Как Word.Selection = Document.ActiveWindow.Selection –

+0

работал как шарм! Спасибо большое!! –

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