今天主要学学VBA 和其他应用程序的交互
一、了解绑定的概念
每个Office程序都有各自的对象库,也就是每个程序可用的对象、方法和属性、所以要能使EXCEL访问另外的Office程序,就需要将另一个Office程序绑定起来。分为两种:早期绑定、后期绑定
①早期绑定
需要显式地将客户端应用程序指向服务器端应用程序的对象库
优点:比后期绑定快、可以在对象浏览器完全访问服务器端应用程序的对象模型、可以使用智能提示、可自动访问服务器端应用程序内置常亮
使用方法:VBE中选择“工具”——“引用”
②后期绑定
不需要将客户端应用程序指向服务器端应用程序的对象库
优点:不依赖版本,不会因为兼容性问题运行失败
GetObject和CreateObject:都可以返回对对象的引用。
GetObject:可以使用已经在运行的应用程序
CreateObject:函数创建一个应用程序的新实例接口
③简单的例子,查看创建的Word版本,创建之前呢,先选择“工具”——“引用”绑定Word的对象库
早期绑定:
Sub wordCreate()
Dim wordApp As Object
Set wordApp = CreateObject("Word.Application")
MsgBox wordApp.Version
wordApp.Quit
Set wordApp = Nothing
End Sub
后期绑定:
Sub wordCreate2()
Dim wordApp As New Word.Application
MsgBox wordApp.Version
wordApp.Quit
Set wordApp = Nothing
End Sub
二、执行Word任务
不管三七二十一,先选择“工具”——“引用”绑定Word的对象库
把Excel的数据传入Word:我在"E:\VBA呀呀呀\测试.docx"文件内创建了一个书签,命名为了“图表”,用来接收EXCEL赋值的数据,具体代码如下:
Sub wordData()
'定义Word文档对象、word实际存放数据的地方、以及实例化一个Word程序
Dim wdDoc As Word.Document
Dim wdRng As Word.Range
Dim wd As New Word.Application
'赋值
Set wdDoc = Word.Documents.Open("E:\VBA呀呀呀\测试.docx")
'赋值
Set wdRng = wdDoc.Bookmarks("图表").Range
On Error Resume Next
'复制EXCEL sheet1的数据
Sheets("Sheet1").Range("A1:H41").Copy
'粘贴EXCEL sheet1的数据
wdRng.Paste
End Sub
今天的内容实在有点短,越到后面越是晦涩难懂,等理解通透了再多更新一些