ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何用EXCEL的VBA控制WORD表格?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-8-25 00:34 | 显示全部楼层 |阅读模式
我在excel里已经有相关的一切数据,如何将这些数据传给WORD,并保存和打印?
WORD只要接收数值,不做其它设置变化之类。

请大家指点一下,谢谢!!

j601.rar

10.79 KB, 下载次数: 1112

TA的精华主题

TA的得分主题

发表于 2009-8-25 05:47 | 显示全部楼层
'引用Word对象
'请使用普通书签,而不是窗体域,因为窗体域锁定了,可能无法操作。
Sub test()
Dim myDoc As Word.Document
Set myDoc = GetObject(ThisWorkbook.Path & "\j601.doc")
With myDoc
.Application.Visible = False
.Bookmarks("工程名称").Range.Text = Sheet1.Cells(1, 2)
.Application.Visible = True
End With

Set myDoc = Nothing
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-25 18:55 | 显示全部楼层

感谢

哦,谢谢指教,我吃完饭试试

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-30 04:19 | 显示全部楼层

经过自己的努力终于把程序编出来了!!

这几天一直自己在查书,因WORD基础差,看得很辛苦,但自己想,一定能弄好它的。

Sub userbm()
Dim myarray()
Dim wdbkmk As String
Dim wdapp As Word.Application
Dim wdrang As Word.Range
Dim mydate As String

Dim i As Integer

'Dim myDoc As Word.Document
'Set myDoc = GetObject(ThisWorkbook.Path & "\j601.doc")

myarray = Array("工程名称", "单元名称", "仪表名称", "仪表型号", "仪表位号", "制造厂", "精确度", "出厂编号", "输入", _
"允许误差", "电气源", "输出", "迁移量", "分度号", "标准表名称")

Set wdapp = GetObject(, "Word.Application")

For i = 1 To 15

Set wdrng = wdapp.ActiveDocument.Bookmarks(myarray(i - 1)).Range
wdrng.Cut
mydate = ActiveWorkbook.Worksheets("Sheet1").Cells(i, 2)
wdrng.InsertBefore (mydate)

Next i

'Set wdrng = wdapp.ActiveDocument.Bookmarks(myarray(1)).Range
'wdrng.Cut
'mydate = ActiveWorkbook.Worksheets("Sheet1").Cells(2, 2)
'wdrng.InsertBefore (mydate)

Set wdapp = Nothing

End Sub

注意,word与excel文件都要打开,当然你可以修改下我的代码。

我要睡觉了

我要睡觉了

TA的精华主题

TA的得分主题

发表于 2009-9-5 21:32 | 显示全部楼层

我想哭 了

看不懂啊,高手们, 我想哭 

TA的精华主题

TA的得分主题

发表于 2009-9-11 09:03 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-9-13 14:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

回复 4楼 LYYVBA 的帖子

运行到仪表名称,出现"集合所要求的成员不存在"的错误,是什么原因?请予指教!谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-9-15 21:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

我的回复

您好,你要先设置好每一个单元格的名称的。
myarray = Array("工程名称", "单元名称", "仪表名称", "仪表型号", "仪表位号", "制造厂", "精确度", "出厂编号", "输入", _
"允许误差", "电气源", "输出", "迁移量", "分度号", "标准表名称")。。。。。。

这些名称要先在WORD中设置好!

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-9-15 21:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

在论坛得到一些知识,在此表示感谢。

我将文件上传给大家参考,呵呵,我只是编写了一部分,其余的大家自己完善吧。

j601.rar

17.87 KB, 下载次数: 1634

TA的精华主题

TA的得分主题

发表于 2009-9-16 12:01 | 显示全部楼层
原帖由 LYYVBA 于 2009-9-15 21:07 发表
您好,你要先设置好每一个单元格的名称的。
myarray = Array("工程名称", "单元名称", "仪表名称", "仪表型号", "仪表位号", "制造厂", "精确度", "出厂编号", "输入", _
"允许误差", "电气源", "输出", "迁移量", ...

我昨天在双击你表中的窗体后,无意中发现了问题的症结所在,不过还是要谢谢你!!
还一个问题:每次使用都要设置VBA的工具--引用,可以编写代码来一次性解决这个问题吗?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-21 20:03 , Processed in 0.040209 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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