ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 521|回复: 4

[已解决] 关于按模板生成word文件遇到的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-4-30 01:50 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 鱼生 于 2023-4-30 22:48 编辑

在B站看到了版主的一个教学视频,正好对我目前工作有些帮助,所以就进行了了借鉴

其中也做了一些改动,但也没怎么大改,可就是无法运行
我在引用中勾选了“Microsoft Word 16.0 Object Library”
而且这个word不知道为什么总是提示被锁定,右键点击属性它也不是只读文件呀?
不知道什么原因,还请各位老师指点
目标:就是将excel数据填掉word中,之前是用邮件合并解决的
3.png 微信截图_20230430005432.png 微信截图_20230430014356.png
test.zip (29.33 KB, 下载次数: 1)


TA的精华主题

TA的得分主题

发表于 2023-4-30 08:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sub 生成word()
Application.ScreenUpdating = False
Dim Str1, Str2, curpath, wordname, wordpathname, i, j, myPath As String '导出文件名wordname, 导出路径文件名wordpathname
Dim Nsht As FileDialog '打开保存对话框
Application.ScreenUpdating = False
Set wdapp = CreateObject("Word.Application")
i = ThisWorkbook.Path & "\设计费情况说明.docx"
wordname = "设计费情况说明"
wordpathname = "\" & wordname & "_" & Right(Sheet1.Range("B2"), Len(Sheet1.Range("B2")) - 9) & ".docx" '拼接word的名字
wdapp.Visible = True '可见
Set wdoc = wdapp.Documents.Open(i) '打开word
With wdoc.Tables(1)
    .cell(3, 2).Range.Text = Sheet1.Cells(2, 1)
    .cell(4, 2).Range.Text = Sheet1.Cells(2, 2)
    .cell(10, 2).Range.Text = Sheet1.Cells(2, 3)
    .cell(11, 2).Range.Text = Sheet1.Cells(2, 4)
End With
'导出文件
Set Nsht = Application.FileDialog(msoFileDialogFolderPicker)
With Nsht
    If .Show = -1 Then
    ' 如果单击了确定按钮,则将选取的路径保存在变量中
    myPath = .SelectedItems(1)
    End If
End With
wdoc.SaveAs Filename:=myPath & wordpathname
wdapp.Quit
Application.ScreenUpdating = True
End Sub

TA的精华主题

TA的得分主题

发表于 2023-4-30 08:08 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-4-30 08:08 | 显示全部楼层
test.rar (28.86 KB, 下载次数: 11)

TA的精华主题

TA的得分主题

发表于 2023-4-30 08:12 | 显示全部楼层
wdapp.Visible = True '打开的word文档是可见的
wdapp.Visible = false'打开的word文档是不可见的,
所以,在测试代码时,最好是设置为可见,因为,一旦代码出错,word文档是可见的,你可以手动关闭它,如果设置为不可见,文件已经打开了,只是你看不到,所以,再次运行代码时,就会提示文件不占用,只能以只读方式打开

评分

2

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 05:26 , Processed in 0.033440 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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