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