繁体   English   中英

从Excel列表中“查找和替换” Word中的多个单词

[英]“Find and Replace” multiple words in Word from Excel list

我在MS Word中创建了一个查找并替换宏,该宏用B替换了单词A。好的,但是现在我有50个单词需要替换。 这意味着我将不得不为每个单词创建一个新条目,这将永远存在。 再加上几周后,我将不得不添加更多要替换的单词。

有没有一种方法可以通过excel链接单词列表,比如说第1列中的单词被我要替换为第2列中的匹配单词?

到目前为止,这就是我所拥有的。

Sub Macro5()
'
' Macro5 Macro
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "apples"
        .Replacement.Text = "all the apples"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.Execute
End Sub
  1. 修改您的宏,使其可以接受 “要查找的单词”和“要替换为的单词”的参数。
  2. 循环浏览 excel中的一个范围 ,将每个单元格传递给您修改后的宏(子例程)。

这样的事情应该会让您入门。 将Excel绑定到Word,打开包含该列表的文件,然后遍历该列表,依次调用您的宏(已修改为接受两个字符串参数findTextreplaceText )。

Sub Main()
Dim xl as Object 'Excel.Application
Dim wb as Object 'Excel.Workbook
Dim ws as Object 'Excel.Worksheet
Dim rng as Object 'Excel.Range
Dim cl as Object  'Excel.Range
Set xl = CreateObject("Excel.Application")
Set wb = xl.Workbooks.Open("c:\folder\file.xlsx") '## Modify as needed
Set ws = wb.Sheets(1) '##Modify as needed
Set rng = ws.Range("A1", ws.Range("A1").End(xlDown))
For each cl in rng
    Call Macro5(cl.Value, cl.offset(0,1).Value)
Next
End Sub

您可以自行确认Macro5的内容Macro5在上述循环中正常工作。

Sub Macro5(findText$, replaceText$)
'
' Macro5 Macro
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = findText
        .Replacement.Text = replaceText
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.Execute
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM