通过搜索和替换将Excel数据转换为Word模板 - 多个文档

时间:2016-07-31 10:30:36

标签: excel vba ms-word macros

我没有使用Word或Excel宏的经验,但我想将Excel数据导入多个word文件,每个文件包含相同的内容。 (我认为这个任务毕竟不是那么复杂,我试图通过formletter-function完成它,但是当我失败时,我意识到它确实比我想象的复杂得多。然后我想,也许这是正确的地方要求adivce ...)。

示例数据(Excel数据):

    Varname   Value
    Var1      2
    Var2      3
    Var3      0.5
    ...

示例数据(Word模板)

    The following treats the topic on "Varname". Its Value is "Value".

所以在最后它应该看起来像:

    The following treats the topic Var1. Its Value is 2. (saved as Var1.doc or even better Var1.txt, but *.doc would be ok for the beginning!)
    The following treats the topic Var2. Its value is 3. (saved as Var2.doc)
    The following treats the topic Var3. Its value is 0.5. (saved as Var3.doc)
   ...

虽然实际文本要复杂得多,但不应该是代码本身的一部分。所以我认为最好的解决方案必须是"找到"和"替换"。由于我对Word / Excel中的宏完全不熟悉,因此我无法找到如何为"替换" -function实现Excel数据。

    ' Replace-Excel-Data-Macro
    '
    '
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = """Varname"""
            .Replacement.Text = "**???**"
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
            .Text = """Value"""
            .Replacement.Text = "**???**"
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    End Sub

我很抱歉,如果之前已经提出过这个问题,我到目前为止找不到合适的帮助,可能是因为我对这些宏观内容的了解非常有限。非常感谢您的提前评论! :)

1 个答案:

答案 0 :(得分:0)

您可以使用Winword中的邮件合并来完成此类任务。

您从数据源填充模板:execl / database /无论您的数据是什么。

在模板中,您可以从数据源中定义字段名称。

例如,您的模板如下所示:

The following treats the topic on <<Varname>> Its Value is <<Value>>

使用向导:

在向导中

,您可以使用字段,数据源

定义模板

在“邮件”选项卡上,单击“开始邮件合并”,然后单击“步骤依据”    步骤邮件合并向导。

按照以下教程中的步骤进行操作:

How to use mail merge to create form letters in Word