加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

通过VBA将EXCEL的数据传给WORD

(2015-07-22 19:07:27)
标签:

it

分类: ◆VBA
通过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和word放在同一目录下,
在excel中建立按钮,双击后输入下列代码:

Private Sub Commanon1_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 To     '循环
        
With wdRange.Find      
            .Text key(i           '查找
            .
Replacement.Text key(iIIf(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 控件,否则无法使用

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有