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

时间:2022-11-06 12:15:06

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

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

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

第一个填好的如下图:

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

而excel中数据如下图:

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

然后代码如下:

 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里给的一个代码。挺好的,就是中文变量挺多的。