VBA用表替换word文档中的文本

时间:2017-01-10 18:18:33

标签: excel vba excel-vba

我们有一个包含大量关键字的Word模板,写为<%LABEL>我们需要用excel文件中的数据替换每个关键字。

这些关键字在映射表中定义,如下所示。

enter image description here

到目前为止,可以循环关键字并打开每个关键字的源文件。如果来源只是一个单元格,那么对于关键字 ISDName ,则可以正确替换该关键字。

但是如果源包含多个单元格的范围,则该表格将添加到单词文档的开头,而文档中的相关关键字将被删除/删除。通常,该关键字应该由表格替换。

下面的代码是在映射表中看到的每个关键字的循环中执行的。多个单元错误的一部分在IF和ELSE之间。

任何人都可以帮助我们吗?谢谢

         'get sheet name
        strSheetName = .Range("C" & intRow)

        'activate the correct sheet
        wbData.Sheets(strSheetName).Activate

        'get range
        strRange = getRange(.Range("D" & intRow), .Range("E" & intRow), .Range("F" & intRow))

        'if range is multiple cells, then replace keyword by a table
        If InStr(strRange, ":") > 0 Then

            wbData.Sheets(strSheetName).Range(strRange).Copy

            Set objSelection = objWord.Selection
            objSelection.Find.ClearFormatting
            objSelection.Find.Text = "<%" & .Range("A" & intRow) & ">"
            objSelection.Find.Forward = True
            objSelection.Find.MatchWholeWord = True
            objSelection.PasteExcelTable False, True, False
            objSelection.Find.Execute , , , , , , , , , , 2

        'if range is one cell, then replace keyword by text
        Else

            Set objSelection = objWord.Selection
            objSelection.Find.Text = "<%" & .Range("A" & intRow) & ">"
            objSelection.Find.Forward = True
            objSelection.Find.MatchWholeWord = True
            objSelection.Find.Replacement.Text = wbData.Worksheets(strSheetName).Range(strRange)
            objSelection.Find.Execute , , , , , , , , , , 2

        End If

0 个答案:

没有答案