excelvba操作.pdf
《excelvba操作.pdf》由会员分享,可在线阅读,更多相关《excelvba操作.pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、E Ex xc ce el lV VB BA A操操作作W Wo or rd d(总总1 12 2 页页)本页仅作为文档封面,使用时可以删除 This document is for reference only-rar21year.March本文的对象是:有一定 Excel VBA 基础,对 Word VBA 还没有什么认识,想在 Excel中通过 VBA 操作 Word 还有困难的人。一、新建一、新建 WordWord 引用引用需要首先创建一个对 Word Application 对象的引用。在 VBA 中,工具-引用,选取“MicroSoft Word Object Library”。方
2、法一、New Dim Wordapp As Set Wordapp=True 可见 =False 屏幕刷新 Dim WordD As 定义 word 类Set WordD=新建文档Set WordD=打开文档 关闭文档Set WordD=Nothing 退出 Word 对象方法二、CreateObject Dim WordApp As Object Set WordApp=CreateObject()新建 Word 对象后续操作及退出一样方法三、GetObject文件已打开的情况下,使用:SetWordD=GetObject(filename),可建立对文档的引用,如果文件没有打开,则还需要先
3、用方法一或二来操作。至于方法一和方法二的区别,在网上询问了一下,大师们的回答是:方法一:前期绑定,好处是在对象后输入句点可以给出快速提示,因为需要先引用对象,所以容易出现版本兼容问题。方法二:后期绑定,没有提示,根据运行代码机器上对象的版本创建对象,兼容性好。提示:有时二者有较大区别,可论坛搜索字典对象,建议编写代码时使用前期绑定,发布时使用后期绑定。二、认识二、认识 WordWord 的结构的结构Excel 有:Excel 引用.Workbooks工作簿.(1)工作表工作表下是 Range,区域;Cells(row,col),单元格Word 有:文档文档下有字符、单词、句子、段落和节。字符组
4、成单词,单词组成句子,句子组成段落。此外,每个文档具有一个包含一个或多个节的 Sections 集合,每一个节都有一个包含该节页眉和页脚的 HeadersFooters 集合。Characters(index)Words(index)Sentences(index)Paragraphs(index)Sections(index)前三个返回 Range 对象,能直接使用任何区域属性或方法修改该 Range 对象。后面二个返回该集合的单个成员,而不是 Range 对象,不能直接使用区域属性或方法。如下使用例子:Words(1)后面直接.Copy,而.Paragraphs(1)和.Copy 之间多了
5、一个Range。(1).Copy(1).Characters:字符,(1).,第一句的字符总数。Words:单词,对于英文来说是二个空格之间的字母加空格,对于中文,一个标点符号,一个汉字,或一个词(按照微软的输入法中的词组定义)。(感觉不是很可靠)Sentences:句子,以句号结束感觉也不是一个很可靠的范围,感觉还是字符、段落、节,控制起来靠谱一些。Range 对象表示文档中的一个连续范围,由一个起始字符位置和一个终止字符位置定义。这个连续范围可以小到一个插入点,大到整个文档。Dim rngPa As RangeSet rngPa=ActiveDocument.Characters(1)第一
6、个字符 Set rngPa=(_ Start:=(1).,_ End:=(4).第 1 段头到第 4 段尾 Set rngPa=(Start:=0,End:=10)当前文档前 10 个字符选定,我觉得用处不大,原因就是为什么要选中呢能操作就直接操作,不能的话,就选中吧(他可以说是没办法的办法)。range 对象的赋值:(包括任意的对象,Set 是对对象赋值的标准语句)set a=b和变量的赋值:a=1 不一样三、通过录制宏生成代码有了对 Word 基本结构的认识,想操作这些对象应该使用什么方法、修改哪些属性不知道就“录制宏”。录制宏是我们认识未知对象的很好方法之一,通过宏录制器将操作译成 Wo
7、rd 的 Visual Basic 代码,再根据需要修改代码。Word 中录制与 Excel 不同的是,不能使用鼠标移动光标或选中一行,只能使用键盘来移动,或用Shift+方向键来选中。以下几句话就是键盘的:上、下、左、右、Home、End、Shift+左选中 5 个字符、Shift+右选中 5 个字符。Unit:=wdLine,Count:=1 Unit:=wdLine,Count:=1 Unit:=wdCharacter,Count:=1 Unit:=wdCharacter,Count:=1 Unit:=wdLine Unit:=wdLine Unit:=wdCharacter,Count
8、:=5,Extend:=wdExtend Unit:=wdCharacter,Count:=5,Extend:=wdExtend录制的宏使用 Selection 属性返回 Selection 对象。即:录制的宏总是以 Selection.开头的,如上。要想使用这个 Selection.,有时候我们就不得不先对特定的对象.Select,选中。当然,Selection 是一个 Range,Characters、Words、Sentences 也是 Range,Paragraphs(n).Range,Sections(2).Range 也是 Range,那我们就可以将 Selection.后面的语句
9、嫁接到前面这些 Range 之后,就不用先.Select 了。录制的宏,通过嫁接或者复制到 EXCEL VBA 之后,有的运行会出错,此时应检查以下几项:1、第一项中要求的“引用”建立了没?2、利用 VBA 提醒功能检查语句。VBA 编辑过程中,通常在打下.之后(需要前期绑定),该对象所有的方法、属性都会显示出来,利用这个特点,可以检查录制的宏,能否嫁接到需要操作的对象之后。提示里有就能,没有就不能。3、部分转换函数,Word VBA 里有,Excel VBA 里可能没有,遇到这样的情况,也可能出错。例:(1).=CentimetersToPoints=CentimetersToPoints
10、是“首行缩进 2 字符”操作录制的,嫁接后,运行出错,按方法 2 检查:.能用在 Range 之后,那么就是 CentimetersToPoints 出问题了这显然是一个函数,字面意思是“厘米转换成点数”,(录制时我明明输入的是“2 字符”,录下来咋成了厘米为单位呢)那是否是 Excel VBA 里没有这个函数呢(我不知道),将=后面直接改为数字运行通过,最后试下来=20 大约相当于 5 号字的“首行缩进 2字符”。(这个 20,就是 20Points=20 Points)(有人可能会说这样的办法太笨,有什么好办法请告知。先谢过!)四、Word vba 常用语句 100 句1、系统参数(01)
11、获取当前打印机(02)当前应用程序文档的高度(03)当前应用程序文档的宽度(04)获取 Word 版本号和编译序号(05)当前应用程序名(06)返回空字符串,表示 Word 文档(07)返回是否显示最近使用的文档的状态(08)返回当前打开的文档数(09)返回当前可用的字体数(10)返回当前文档的水平位置(11)返回当前文档名,包括所在路径 返回当前文档路径获得文件的相对路径(12)返回文档标准模板名称及所在位置(13)返回最近打开的文档数目(14)返回应用程序所在的地区代码(15)返回应用程序所在磁盘可用空间(16)返回显示器的水平分辨率(17)返回显示器的垂直分辨率(18)返回系统所使用的语
12、言(19)返回系统是否安装了数学协处理器(20)返回当前操作系统名(21)返回计算机处理器名(22)返回操作系统的版本号(23)返回应用程序所使用的模板数(24)返回应用程序用户名(25)返回应用程序的版本号2、Documents/Document 对象(26)返回当前文档采用的模板名及模板所在位置(27)返回当前文档中的书签数(28)返回当前文档的字符数(29)返回当前文档的代码名称(30)返回当前文档中的评论数(31)返回当前文档中的尾注数(32)返回当前文档中的域数目(33)返回当前文档中的脚注数(34)返回当前文档的全名及所在位置(35)当前文档是否有密码保护(36)返回当前文档中的链
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- excelvba 操作
限制150内