2010-12-06 13 views
1

Je suis tring pour créer une macro (dans Excel) pour ouvrir une autre feuille de calcul Excel, faire une recherche-remplacer, puis enregistrez-le.Comment puis-je trouver et remplacer dans un autre document excel

Je l'ai déjà réalisé cela avec un document Word comme ceci:

... 
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 

J'ai crûment tenté de remplacer le mot « mot » avec « Excel » dans le code ci-dessus en vain.

Est-ce que quelqu'un peut me diriger dans la bonne direction s'il vous plaît?

+0

un coup d'oeil ici: http://www.ozgrid.com/ Le site est un peu désorganisé, mais l'info Excel est vaste. – dnagirl

+0

Juste par curiosité, pourquoi n'avez-vous pas enregistré une macro Excel? – Fionnuala

+0

@dnagirl, merci pour le lien. – Robert

Répondre

3

Vous pouvez faire:

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 
+0

Cela a bien fonctionné! Légère modification: "excApp" n'est plus nécessaire, peut-être que quelqu'un peut modifier cela? – Robert

+0

@Robert Édité. Content de savoir que ça a marché. –