请选择 进入手机版 | 继续访问电脑版
风雨十年,感恩同行

用vba将excel的指定的数据输出到word的指定位置

[复制链接]
发表于 2019-2-3 10:26:48 | 显示全部楼层 |阅读模式
用vba将EXCEL的指定的数据输出到word的指定位置---------------------------------------------------
第1步:
001将excel模型和word模板放置到同一个文件夹
1.jpg


---------------------------------------------------
第2步:
002word中指定位置的索引标志
3.jpg

---------------------------------------------------

第3步:
003excel数据源文档的设置
4.jpg

--------------------------------------------------
第4步:
004vba代码
5.jpg

--------------------------------------------------
第5步:
005指定生成word文档的路径
6.jpg

---------------------------------------------------
第6步:
006自动生成word文档的效果
7.jpg

---------------------------------------------------
第7步:
007生成的word文档的具体内容
8.jpg
--------------------------------------------------
第8步:
A008vba代码需要优化的地方
9.jpg

---------------------------------------------------
第9步:

---------------------------------------------------
代码如下:

Private Sub Commanon1_Click()
   Dim BL_Word对象 As New Word.Application
   Dim BL_当前路径
   Dim BL_输出路径
   Dim BL_导出文件名
   Dim BL_导出路径文件名
   Dim i
   Dim j
   Dim Str1, Str2
    With Application.FileDialog(msoFileDialogFolderpicker)
        .InitialFileName = ThisWorkbook.Path & ""
        If .Show = false Then Exit Sub
        BL_输出路径 = .SelectedItems(1) & ""
    End With
   BL_当前路径 = ThisWorkbook.Path
   最后行号 = Sheets("数据").Range("B65536").End(xlUp).Row
   最后列号 = Sheets("数据").Range("IV1").End(xlToLeft).Column
   判断 = 0
   For i = 3 To 最后行号
      BL_导出文件名 = "项目模板"
      FileCopy BL_当前路径 & "\项目模板.docx", BL_输出路径 & "" & "项目" & "-" & Sheets("数据").Range("A" & i) & "说明书" & ".docx" '将文件先拷贝到BL_当前路径后再做替换
      BL_导出路径文件名 = BL_输出路径 & "" & "项目" & "-" & Sheets("数据").Range("A" & i) & "说明书" & ".docx"  '引用一个表格单元格值作输出文件名称
      With BL_Word对象
          .Documents.Open BL_导出路径文件名
          .Visible = False
           For j = 1 To 最后列号
                 Str1 = "[数据" & Format(j, "00") & "]"
                 Str2 = Sheets("数据").Cells(i, j)
                .Selection.HomeKey Unit:=wdStory
                 If .Selection.Find.Execute(Str1) Then
                      .Selection.Font.Color = wdColorAutomatic
                      .Selection.Text = Str2
                 End If
                 For n = 1 To 3
                      .Selection.HomeKey Unit:=wdStory
                       If .Selection.Find.Execute(Str1) Then
                           .Selection.Font.Color = wdColorAutomatic
                           .Selection.Text = Str2
                       End If
                 Next
           Next j
      End With
      BL_Word对象.Documents.Save
      BL_Word对象.Quit
      Set BL_Word对象 = Nothing
   Next i
   If 判断 = 0 Then
      i = MsgBox("已输出到 Word 文件!", 0 + 48 + 256 + 0, "提示:")
   End If
End Sub




您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

帖子推荐:
客服咨询

QQ:592439202

服务时间 9:00-22:00

金蝶用友易助管家婆深度服务
 
QQ在线咨询
售前咨询热线
592439202
售后服务热线
243998158
快速回复 返回顶部 返回列表