通过VBA将EXCEL的数据传给WORD
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过VBA将EXCEL的数据传给WORD相关的知识,希望对你有一定的参考价值。
现举例说明想实现的功能:
1、设有一名为A的EXCEL文件里的A1=400,B5=3000,
2、还有一名为B的WORD文件里有两行文本:
abcdefg
hijklmn
3、分别把EXCEL里两个单元的数值放到WORD的两行文字后,宏执行后的结果是WORD里的文本变成:
abcdefg400
hijilmn3000
PS1:在对WORD的插入地点进行定位时,我希望的是手工插入一个类似“书签”一样的东西,然后在EXCEL中引用这个“书签”,而不是简单地定为在第一行和第二行的结尾就可以了,上面只是举例说明而己。
PS2:希望有具体的操作过程及宏程序可供学习实践,如在回答前躬身一试小弟不胜感激。
PS3:如果此功能实现,能大量减少我的工作量,感激之情无法言表,追加分数。
在excel中建立按钮,双击后输入下列代码:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False \'关闭屏幕刷新
On Error Resume Next \'捕捉错误
Dim oSt As Range, wdDoc As Word.Document, wdRange As Word.Range
myPath = ThisWorkbook.Path & "\\2.doc" \'定义word文件路径,名字自己修改,我设定为2.doc
Set wdDoc = GetObject(myPath) \'打开word
Dim key(2) \'定义一下数组,
key(1) = "abcdefg" \'要替换的数据
key(2) = "hijklmn"
Set wdRange = wdDoc.Content \'将word的文档内容赋予wdrange
For i = 1 To 2 \'循环
With wdRange.Find
.Text = key(i) \'查找
.Replacement.Text = key(i) & IIf(i = 1, Cells(1, 1).Value, Cells(5, 2).Value) \'替换
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
wdRange.Find.Execute Replace:=wdReplaceAll \'全部替换
Next
wdDoc.Save \'保存word
wdDoc.Close \'关闭word
Set wdDoc = Nothing
Application.ScreenUpdating = True \'开启屏幕刷新
End Sub
经测试,已经达到楼主要求,请追加分数并采纳.呵呵追问
你好:
此句编译没通过,
Dim oSt As Range, wdDoc As Word.Document, wdRange As Word.Range
说是:用户定义类型未定义。
已加Q,请直接将两个文件发给我吧。
哦,忘了告诉你了.打开VBA后需要增加引用:
MIcrosoft Word 12.0 Object Library 控件,否则无法使用
1-在Excel中用VBA把表格中的内容一行一行的写入一个文本文件中
2-在Word中用VBA写入代码,读取你用Excel写入的那个文本文件,调用Word中的替换功能,把Word里的abcdefg替换成为abcdefg+文本文件里的内容就行了.
3-你每次只需打开Excel文件,执行代码,写入文本文件,再打开Word文档,读取文本文件就行. 参考技术B 你这个问题难度忒大了,我不会,但我每天都要根据一张表发一些短信给相关的人,相信你也是用这些来做格式报告吧,不防都在EXCEL里面做啦,以下是我的做法:
首先,在一个表中做成要达到的格式,固定的就直接输入,不确定的内容则用判断语句进行设定;
其次,就选中复制,粘贴在,TXT文本中;
最后去其中的制表符,用CTRL:+H即可实现
接下来就可以直接用啦,希望能帮到你.
以上是关于通过VBA将EXCEL的数据传给WORD的主要内容,如果未能解决你的问题,请参考以下文章
在EXCEL中用VBA怎样操作WORD文档中嵌入的EXCEL表格?
如何用VBA宏程序将excel中的内容批量复制到word文档中去
通过 VBA excel 程序在 MS Word 标题中的边框线后添加页码和新行