|
发表于 2022-8-4 06:44:57
|
显示全部楼层
用VBA的话,就先将要写入的地方一一标记,在用Excel把要导入的数据命名,比入我要写入通知书,把标记命名为001,002这样子的,就是这样,记的替换一些名字- 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
复制代码 |
|