2012-12-11 198 views
1

Excel中有简单的VBA宏(2003)。它查看单元格A $ N和B $ N,并将Word文档文本从B $ N替换为A $ N。VBA宏:Excel到Word文本替换

Sub Макрос1() 

Dim pathh As String, i As Integer 
pathh = "c:\1.doc" 
Dim pathhi As String 
Dim from_text As String, to_text As String 
Dim WA As Object, WD As Object 
Set WA = CreateObject("Word.Application") 
WA.Documents.Open (pathh) 
WA.Visible = True 

For oCell = 1 To 150 
    from_text = Range("B" + CStr(oCell)).Value 
    to_text = Range("A" + CStr(oCell)).Value 
    With WA 
     .Activate 
     With .Selection.Find 
      .ClearFormatting 
      .Replacement.ClearFormatting 

      .Text = from_text 
      .Replacement.Text = to_text 
      .Execute Replace:=wdReplaceAll 
     End With 
    End With 
Next 
End Sub 

问题:在Word文档中这个脚本只能选择文本,但不要替换。没有建议?

+1

你有我的尺寸和使用oCell而不是 –

回答

2

首先,我希望你有参考Word对象库活动: Reference to Word

的脚本对子级实际工作,我做了一些小的修改,并有这方面的工作,包括更换:

Sub test1() 

    Dim pathh As String 
    Dim pathhi As String 
    Dim oCell As Integer 
    Dim from_text As String, to_text As String 
    Dim WA As Object 

    pathh = "C:\1.doc" 

    Set WA = CreateObject("Word.Application") 
    WA.Documents.Open (pathh) 
    WA.Visible = True 

    For oCell = 1 To 2 
     from_text = Sheet2.Range("B" & oCell).Value 
     to_text = Sheet2.Range("A" & oCell).Value 
     With WA 
      .Activate 
      With .Selection.Find 
       .ClearFormatting 
       .Replacement.ClearFormatting 

       .Text = from_text 
       .Replacement.Text = to_text 
       .Execute Replace:=wdReplaceAll 
      End With 
     End With 
    Next 
End Sub 
+0

优秀的建议! Ms Excel和MS Office库链接到项目,但MS Word - 没有。 – potapuff

+0

现在好了! –

0

使用Excel VBA 7.0和Word 14.0对象library With .Selection块需要稍微修改

  With .Selection.find 
      .ClearFormatting 
      .Execute FindText:=from_text, ReplaceWith:to_text, replace:=wdReplaceAll 
     End With