将excel中的数据填入word模板中-VBA

首先将word模板中需要填写excel中数据的空白处用自己独特的字符串标记,比如   数据001  什么的。如下图:

这样,就可以用vba搜寻这些自己独特的标记来根据excel内容填充word了。

第一个填好的如下图:

而excel中数据如下图:

然后代码如下:

 1  Sub 生成Word文件_Click()
 2   Dim Word对象 As New Word.Application, 当前路径, 导出文件名, 导出路径文件名, i, j
 3    Dim Word表格行号, Word表格列号, Excel数据表列号
 4    Dim Str1, Str2
 5    当前路径 = ThisWorkbook.Path
 6     B = InputBox("请输入数据开始行", "提示")
 7   c = InputBox("请输入数据结束行", "提示")
 8   
 9    判断 = 0
10    For i = B To c
11       导出文件名 = "通知书"
12       FileCopy 当前路径 & "通知书.doc", 当前路径 & "" & 导出文件名 & "(" & Sheets("统计表").Range("c" & i) & ").doc" '可以将Sheets("1").Range("B" & i)换成其他数据
13       导出路径文件名 = 当前路径 & "" & 导出文件名 & "(" & Sheets("统计表").Range("c" & i) & ").doc" '可以将Sheets("1").Range("B" & i)换成其他数据
14       With Word对象
15         .Documents.Open 导出路径文件名
16         .Visible = False
17          With .Selection.Find
18             For x = 7 To 1 Step -1 '从大到小,防止字符串序号低位与高位串扰,填写数据即excel表总列数
19                Str1 = "数据" & Format(x, "000")
20                'MsgBox "str1" & Str1
21                Str2 = Sheets("统计表").Cells(i, x)
22                .Text = Str1 '查找到指定字符串
23                .Replacement.Text = Str2 '替换字符串
24               .Execute Replace:=wdReplaceAll '全部替换
25             Next x
26           End With
27              
28           
29         
30         .Selection.WholeStory '全部选中
31         .Selection.Font.Color = wdColorAutomatic '字符为自动颜色
32       End With
33       Word对象.Documents.Save
34       Word对象.Quit
35       Set Word对象 = Nothing
36 '      If i = c Then
37 '       MsgBox "已输出到 Word 文件!", 0 + 48 + 256 + 0, "提示:"
38 '      End If
39       
40    Next i
41    If 判断 = 0 Then
42       i = MsgBox("已输出到 Word 文件!", 0 + 48 + 256 + 0, "提示:")
43    End If
44    
45 End Sub

 这个excelhome里给的一个代码。挺好的,就是中文变量挺多的。

原文地址:https://www.cnblogs.com/zhubinglong/p/7446079.html