(转)Excel VBA 操作 Word(入门篇)

这篇博客介绍了如何使用Excel VBA来操作Word,适合初学者入门。内容包括基本的VBA编程概念和在Excel中控制Word的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

原文地址

本文的对象是:有一定Excel VBA基础,对Word VBA还没有什么认识,想在Excel中通过VBA操作Word还有困难的人。
 
一、新建Word引用
需要首先创建一个对 Word Application 对象的引用。在VBA中,工具-引用,选取“MicroSoft Word 11.0 Object Library”。
方法一、New Word.Application
    Dim Wordapp As Word.Application
    Set Wordapp = NewWord.Application
    Wordapp.Visible = True                    '可见
    'Wordapp.ScreenUpdating =False             '屏幕刷新
    Dim WordD As Word.Document      '定义word类
    Set WordD = Wordapp.Documents.Add                  '新建文档
    'Set WordD = Wordapp.Documents.open(filename)          '打开文档
    '……
    WordD.Close                         '关闭文档
    Set WordD = Nothing
    WordApp.Quit                        '退出Word对象
方法二、CreateObject
    Dim WordApp As Object
    Set WordApp =CreateObject("Word.Application")    '新建Word对象
‘后续操作及退出一样……
方法三、GetObject
文件已打开的情况下,使用:SetWordD=GetObject(filename),可建立对文档的引用,如果文件没有打开,则还需要先用方法一或二来操作。
至于方法一和方法二的区别,在网上询问了一下,大师们的回答是:
方法一:前期绑定,好处是在对象后输入句点可以给出快速提示,因为需要先引用对象,所以容易出现版本兼容问题。
方法二:后期绑定,没有提示,根据运行代码机器上对象的版本创建对象,兼容性好。
提示:有时二者有较大区别,可论坛搜索字典对象,建议编写代码时使用前期绑定,发布时使用后期绑定。
 
二、认识Word的结构
Excel有:
Excel.Application                        ’Excel引用
Excel.Application. Workbooks             ’工作簿
Excel.Application. Workbooks.Sheets(1)      ’工作表
工作表下是Range,区域;Cells(row,col),单元格
Word有:
Word.Application
Word.Application.Documents           ’文档
文档下有字符、单词、句子、段落和节。字符组成单词,单词组成句子,句子组成段落。此外,每个文档具有一个包含一个或多个节的 Sections 集合,每一个节都有一个包含该节页眉和页脚的HeadersFooters 集合。
Characters(index)
Words(index)
Sentences(index)
Paragraphs(index)
Sections(index)
前三个返回Range对象,能直接使用任何区域属性或方法修改该Range 对象。后面二个返回该集合的单个成员,而不是 Range 对象,不能直接使用区域属性或方法。如下使用例子:Words(1)后面直接.Copy,而.Paragraphs(1)和.Copy之间多了一个Range。
Selection.Words(1).Copy
ActiveDocument.Paragraphs(1).Range.Copy
Characters:字符,ActiveDocument.Sentences(1).Characters.Count,第一句的字符总数。
Words:单词,对于英文来说是二个空格之间的字母加空格,对于中文,一个标点符号,一个汉字,或一个词(按照微软的输入法中的词组定义?)。(感觉不是很可靠?)
Sentences:句子,以句号结束?感觉也不是一个很可靠的范围,感觉还是字符、段落、节,控制起来靠谱一些。
Range 对象表示文档中的一个连续范围,由一个起始字符位置和一个终止字符位置定义。这个连续范围可以小到
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值