分享

关于VB或VBA代码中前期绑定与后期绑定的区别

 gblhp 2015-03-31
       在VBA中经常需要进行office软件互访问,比如将excel中的数据导出到word中,这时需要涉及到在excel中通过OLE技术引用word软件,在这过程中VBA提供了两种绑定方式,前绑定和后绑定。
      前绑定需要在工具菜单的引用对话框下首先引用对象库,在编译期完成绑定,这样的优点是在编码过程中可以实时看到word对象引用的方法属性等提示。下面是一个前绑定导出excel第一行第一列单元格到word文件的例程:
Sub qianqi1()
Dim App As Word.Application
Dim doc As Word.Document
Set App = New Word.Application
Set doc = App.Documents.Add
doc.Content.InsertAfter Worksheets(1).Cells(1, 1).Value
doc.SaveAs Filename:="c:\123.doc"
doc.Close
App.Quit
Set doc = Nothing
Set App = Nothing
End Sub
       前绑定还可以使用一种即时实例化变量,即声明时候就实例化,不需要set语句,代码如下:
Sub qianqi1()
Dim App As New Word.Application  ‘这是即时实例化
Dim doc As Word.Document
Set doc = App.Documents.Add
doc.Content.InsertAfter Worksheets(1).Cells(1, 1).Value
doc.SaveAs Filename:="c:\1234.doc"
doc.Close
App.Quit
Set doc = Nothing
Set App = Nothing
End Sub
 
       后期绑定是指在运行代码的过程中创建对象,指定对象类型,不需要先声明。 对于后绑定来说,优点是不需要设置引用对话框,缺点是编码时不会有提示,推荐用前绑定,下面是示例:
 
Sub houqi()
On Error Resume Next
Set wordapp = GetObject(, "Word.Application")   ’看看word软件是否已经开着,开着就不用生成新对象
If Err <> 0 Then
Set wordapp = CreateObject("Word.Application")
End If
Set doc = wordapp.Documents.Add
doc.Content.InsertAfter Worksheets(1).Cells(1, 1).Value
doc.SaveAs Filename:="c:\127.doc"
doc.Close
wordapp.Quit
Set doc = Nothing
Set wordapp = Nothing
End Sub
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约