我们有一个包含大量关键字的Word模板,写为<%LABEL>我们需要用excel文件中的数据替换每个关键字。
这些关键字在映射表中定义,如下所示。
到目前为止,可以循环关键字并打开每个关键字的源文件。如果来源只是一个单元格,那么对于关键字 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