通过VBA自动加入引用
时间:2010-08-23
来源:互联网
'Name: DAO Major: 5 Minor: 0 GUID: {00025E01-0000-0000-C000-000000000046}
'Name: WMPLib Major: 1 Minor: 0 GUID: {6BF52A50-394A-11D3-B153-00C04F79FAA6}
'Name: VBIDE Major: 5 Minor: 3 GUID: {0002E157-0000-0000-C000-000000000046}
'Name: Office Major: 2 Minor: 5 GUID: {2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}
'Name: stdole Major: 2 Minor: 0 GUID: {00020430-0000-0000-C000-000000000046}
'Name: Word Major: 8 Minor: 5 GUID: {00020905-0000-0000-C000-000000000046}
'Name: VBA Major: 4 Minor: 1 GUID: {000204EF-0000-0000-C000-000000000046}
sub AutoAddRef()
Dim strGUID As String
strGUID = "{6BF52A50-394A-11D3-B153-00C04F79FAA6}" 'Microsoft Windows Media Player Marjor=1 Minor=0
ThisDocument.VBProject.References.AddFromGuid GUID:=strGUID, Major:=1, Minor:=0
end sub
作者: ngcg 发布时间: 2010-08-23
作者: tangqingfu 发布时间: 2010-08-23
作者: ngcg 发布时间: 2010-08-23
如'Name: WMPLib Major: 1 Minor: 0 GUID: {6BF52A50-394A-11D3-B153-00C04F79FAA6}
作者: tangqingfu 发布时间: 2010-08-23
作者: 海婷 发布时间: 2010-08-23
Dim strGUID As String, theRef As Variant
For i = ThisDocument.VBProject.References.Count To 1 Step -1
Set theRef = ThisDocument.VBProject.References.Item(i)
Selection.TypeText Text:="Name: " + theRef.Name
Selection.TypeText Text:=" Major: " & theRef.Major
Selection.TypeText Text:=" Minor: " & theRef.Minor
Selection.TypeText Text:=" GUID: " + theRef.GUID
Selection.TypeText Text:=vbCrLf
Next i
作者: ngcg 发布时间: 2010-08-23
作者: tangqingfu 发布时间: 2010-08-23
作者: rzz8118 发布时间: 2010-08-24
有的引用,系统没有怎么办,如listview控件,有的电脑装的都是精简版的office,这个方法,可以测试出来吗?
作者: zl2010 发布时间: 2010-08-24
作者: ngcg 发布时间: 2010-08-25
dim FullPath as string
FullPath="C:\windows\System32\wmp.dll"
ThisDocument.VBProject.References.AddFromFile(FullPath)
作者: ngcg 发布时间: 2010-08-26
作者: dsd999 发布时间: 2010-08-26
类似问题的常规做法:
使用CreateOjbect方法创建一个后期绑定的对象。为了使用该对象库的对象浏览器,可以在本机中先期引用该对象库,定义为明确的对象类型,编译通过以及测试没有问题后,去除前期引用,将所有该对库库的相关对象声明为Object类型,常量改为常数。
作者: 守柔 发布时间: 2010-08-28
作者: ngcg 发布时间: 2010-08-28
引用:
原帖由 ngcg 于 2010-8-28 18:11 发表请版主提供明确的实例以供参考。谢谢。
我示例一下,仅供理解。
Option Explicit
Sub Example_AddReference()
'''VBE 引用Microsoft Excel 11.0 Object Library
Dim xlApp As New Excel.Application
Dim xlWBK As Excel.Workbook
Dim xlSht As Excel.Worksheet
Dim xlRng As Excel.Range
Dim C As Excel.Range
Set xlWBK = xlApp.Workbooks.Open("D:\Temp\sample.xls")
Set xlSht = xlWBK.Worksheets(1)
With xlSht
Set xlRng = .Range(.Cells(1, 1), .Cells(65536, 1).End(xlUp))
End With
For Each C In xlRng
Debug.Print C.Value
Next
xlWBK.Close False
Set xlWBK = Nothing
xlApp.Quit
Set xlApp = Nothing
End Sub
Sub Example_CreateObject()
Dim xlApp As Object
Dim xlWBK As Object
Dim xlSht As Object
Dim xlRng As Object
Dim C As Object
Set xlApp = CreateObject("Excel.Application")
Set xlWBK = xlApp.Workbooks.Open("D:\Temp\sample.xls")
Set xlSht = xlWBK.Worksheets(1)
With xlSht
Set xlRng = .Range(.Cells(1, 1), .Cells(65536, 1).End(-4162))
End With
For Each C In xlRng
Debug.Print C.Value
Next
xlWBK.Close False
Set xlWBK = Nothing
xlApp.Quit
Set xlApp = Nothing
End Sub
''''前者为前期绑定,即在VBE中勾选对于MS EXCEL 库的引用;后期为后期绑定,使用CreateObject创建一个已注册的库的类的实例。
'''前者如果开发机上引用为高版本时(如12.0),在低端用户机上(如11.0)时将发生引用丢失现象,反之则不会出现。但后期绑定时则不存在此问题,CreateObject时总是创建一个当前环境下已注册的类的实例。
作者: 守柔 发布时间: 2010-08-29
我的构思是不要通过VBE人工引用Microsoft Excel 11.0 Object Library,而是借助编码引用
Microsoft Excel 11.0 Object Library
''VBE 引用Microsoft Excel 11.0 Object Library
作者: ngcg 发布时间: 2010-08-29
作者: chuhaiou 发布时间: 2010-08-29
执行前,必须勾选Tools->Macro->Security->->TrustedSources->TrustaccesstoVisualBasicProject
作者: ngcg 发布时间: 2010-08-30
Sub 引用msdxm.ocx()
ActivePresentation.VBProject.references.addfromfile ("c:\windows\system32\msdxm.ocx")
End Sub
作者: chuhaiou 发布时间: 2010-08-30
作者: yb010 发布时间: 2010-11-15
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28