2010-12-06 7 views
1

マクロを作成して別の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 

私は正しい方向に私を向けることができますか?

あなたが行うことができ
+0

はここを見て:http://www.ozgrid.com/サイトは少し混乱しているが、Excelの情報は、広範です。 – dnagirl

+0

好奇心の問題として、どうしてExcelマクロを記録しなかったのですか? – Fionnuala

+0

@dnagirl、リンクありがとう。 – Robert

答えて

3

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

これはうまくいった!わずかな変更: 'excApp'はもはや必要なくなりました。おそらく誰かがこれを編集できますか? – Robert

+0

@Robertが編集しました。それが働いたことを知ってうれしい。 –