Как мне найти и заменить в другом документе Excel - PullRequest
1 голос
/ 06 декабря 2010

Я пытаюсь создать макрос (в Excel), чтобы открыть другой лист Excel, выполнить поиск-замену и сохранить его.

Я уже достиг этого с помощью текстового документа, подобного этому:

...
Dim wrdDoc As Word.Document
If wrdApp Is Nothing Then Set wrdApp = CreateObject("Word.Application")
Set wrdDoc = wrdApp.Documents.Open(TemplateFilePath)
...

Call WordReplace(wrdDoc,"a","b")

....

Private Sub WordReplace(wrdDoc As Word.Document, sFind As String, sReplace As String)
  With wrdDoc.Content.Find
    .Text = sFind
    .Replacement.Text = sReplace
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    .Execute Replace:=wdReplaceAll
  End With
End Sub

Я грубо пытался заменить слово «Word» на «Excel» в приведенном выше коде, но безрезультатно.

Сомоне, пожалуйста, укажите мне правильное направление?

1 Ответ

3 голосов
/ 06 декабря 2010

Вы можете сделать:

Sub a()

Dim excDoc As Workbook
....

Set excDoc = Workbooks.Open("c:\mata.xls")
Call WordReplace(excDoc, "a", "b")
....
End Sub

Private Sub WordReplace(excDoc As Variant, sFind As String, sReplace As String)

Dim sht As Worksheet

For Each sht In excDoc.Worksheets
  With sht
       .Cells.Replace What:=sFind, Replacement:=sReplace, LookAt:=xlWhole, _
        SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False
  End With
Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...