吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1664|回复: 17
收起左侧

[讨论] excel表中的数据写入word文档

[复制链接]
cindy88sy 发表于 2021-11-18 11:05
最近有需求“将excel表中的数据写入word文档”,无奈自己没有钱币下载,找了一圈VBA开源代码改了改,给有需求的人。



  • 表格样式:

表格样式

表格样式

  • word样式:

QQ截图20211118105957.png



Sub Macro1()'引用Microsoft Word 12.0 Object Library    Dim MyWord As New Word.Application    Dim arr, MyPath$, MyFile$, MyName$, i&    MyPath = ThisWorkbook.Path & "\"    MyFile = MyPath & "进货表.docx"    arr = [a1].CurrentRegion    With MyWord        .Visible = False        For i = 2 To UBound(arr) Step 2            MyName = MyPath & "进货表(" & arr(i, 10) & ").docx"            FileCopy MyFile, MyPath & "进货表(" & arr(i, 10) & ").docx"            .Documents.Open MyName             With .ActiveDocument.Tables(2)                .Cell(6, 2).Range.Text = Chr(13) & arr(i, 10) & Chr(13)                .Cell(12, 2).Range.Text = Chr(13) & Mid(arr(i, 2), 5, 2)                .Cell(12, 3).Range.Text = Chr(13) & Right(arr(i, 2), 2)                .Cell(12, 4).Range.Text = Chr(13) & Left(arr(i, 2), 4)                .Cell(12, 6).Range.Text = Chr(13) & Mid(arr(i + 1, 2), 5, 2)                .Cell(12, 7).Range.Text = Chr(13) & Right(arr(i + 1, 2), 2)                .Cell(12, 8).Range.Text = Chr(13) & Left(arr(i + 1, 2), 4)                .Cell(15, 1).Range.Text = arr(i, 2) & " " & arr(i, 3) & arr(i, 4) & " " & arr(i, 5) & " " & arr(i, 6) & " 到"                .Cell(16, 1).Range.Text = arr(i + 1, 2) & " " & arr(i + 1, 3) & arr(i + 1, 4) & " " & arr(i + 1, 5) & " " & arr(i + 1, 6)             End With            .ActiveDocument.Close True        Next        .Quit    End With    Set MyWord = Nothing    MsgBox "ok"End Sub

免费评分

参与人数 1热心值 +1 收起 理由
Qq123333123 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

2632692689 发表于 2021-11-18 12:32
感谢,感谢
lwp72495lwp 发表于 2021-11-18 12:34
hxp.china.sh 发表于 2021-11-18 12:53
谁有在EXCEL里面生成二维码的VBA,可选择区域来批量生成的
Qq123333123 发表于 2021-11-18 12:59
谢谢楼主分享,吾爱有你更精彩
pllpl 发表于 2021-11-18 13:01
牛啊这东西                              
1e3e 发表于 2021-11-18 13:14
晕,你这代码啊,好歹排一下版
叫我小王叔叔 发表于 2021-11-18 13:19
这个看起来会好一点么?
[Asm] 纯文本查看 复制代码
Sub Macro1()'引用Microsoft Word 12.0 Object Library    Dim MyWord As New Word.Application    Dim arr, MyPath$, MyFile$, MyName$, i&    MyPath = ThisWorkbook.Path & "\"    MyFile = MyPath & "进货表.docx"    arr = [a1].CurrentRegion    With MyWord        .Visible = False        For i = 2 To UBound(arr) Step 2            MyName = MyPath & "进货表(" & arr(i, 10) & ").docx"            FileCopy MyFile, MyPath & "进货表(" & arr(i, 10) & ").docx"            .Documents.Open MyName             With .ActiveDocument.Tables(2)                .Cell(6, 2).Range.Text = Chr(13) & arr(i, 10) & Chr(13)                .Cell(12, 2).Range.Text = Chr(13) & Mid(arr(i, 2), 5, 2)                .Cell(12, 3).Range.Text = Chr(13) & Right(arr(i, 2), 2)                .Cell(12, 4).Range.Text = Chr(13) & Left(arr(i, 2), 4)                .Cell(12, 6).Range.Text = Chr(13) & Mid(arr(i + 1, 2), 5, 2)                .Cell(12, 7).Range.Text = Chr(13) & Right(arr(i + 1, 2), 2)                .Cell(12, 8).Range.Text = Chr(13) & Left(arr(i + 1, 2), 4)                .Cell(15, 1).Range.Text = arr(i, 2) & " " & arr(i, 3) & arr(i, 4) & " " & arr(i, 5) & " " & arr(i, 6) & " 到"                .Cell(16, 1).Range.Text = arr(i + 1, 2) & " " & arr(i + 1, 3) & arr(i + 1, 4) & " " & arr(i + 1, 5) & " " & arr(i + 1, 6)             End With            .ActiveDocument.Close True        Next        .Quit    End With    Set MyWord = Nothing    MsgBox "ok"End Sub
红蓝黄 发表于 2021-11-18 13:43
代码太乱了
xiaoshu1688 发表于 2021-11-18 13:45
VBA用好了就是顺手。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 18:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表