ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 20419|回复: 9

[求助] vba工具中引用的设置

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-3-13 15:14 | 显示全部楼层 |阅读模式
我在工具中将microsoft scripting runtime 添加到引用中,在这个vba工程中有这一项了 ,可是我excel程序全部关闭,重新打开一个excel,在vba中就又找不到这个引用了 ,请问这个如何设置,打开任何excel都有这个引用

TA的精华主题

TA的得分主题

发表于 2012-3-13 15:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
前期绑定使用不方便,建议用后期绑定:

Set d = CreateObject("scripting.dictionary")

Set fso = CreateObject("Scripting.FileSystemObject")

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-3-13 15:28 | 显示全部楼层
zhaogang1960 发表于 2012-3-13 15:22
前期绑定使用不方便,建议用后期绑定:

Set d = CreateObject("scripting.dictionary")

能说的详细点吗  ?刚开始学,谢谢

TA的精华主题

TA的得分主题

发表于 2012-3-13 15:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
churonghua 发表于 2012-3-13 15:28
能说的详细点吗  ?刚开始学,谢谢

如果你引用microsoft scripting runtime 是为了创建字典对象:
前期绑定需要引用
Dim d As New Dictionary

后期邦定不需要引用
Dim d As Object
Set d = CreateObject("scripting.dictionary")

如果是创建文件对象模型
Dim fso As New FileSystemObject'前期引用需要引用

Dim fso as Object'后期邦定不需要引用
Set fso = CreateObject("Scripting.FileSystemObject")

TA的精华主题

TA的得分主题

发表于 2012-3-13 15:47 | 显示全部楼层
本帖最后由 liucqa 于 2012-3-13 15:48 编辑

Private Sub Workbook_Open()
    '打开“信任对VBA工程对象模型的访问”
    If Not SecuritySet(ThisWorkbook) Then MsgBox "本程序将打开“信任对VBA工程对象模型的访问”"
    Do Until SecuritySet(ThisWorkbook)
        With Application
            If CDbl(Val(Application.Version)) <= 11 Then
                MsgBox "本程序只支持Excel2007以上版本"
            Else
                .SendKeys "%tmst{tab}{tab}v~"
                '.SendKeys "%las{tab}e{tab}v~"
            End If
            .CommandBars.FindControl(ID:=3627).Execute
        End With
    Loop
   
    '加引用
    For n = 1 To ThisWorkbook.VBProject.References.Count
        If ThisWorkbook.VBProject.References.Item(n).GUID = "{0002E157-0000-0000-C000-000000000046}" Then Exit Sub
    Next
    ThisWorkbook.VBProject.References.AddFromGuid "{0002E157-0000-0000-C000-000000000046}", 5, 3    '版本5.3
End Sub

启动实现自动引用。请参考类似代码,如果看不懂就别用这个方法了。


捕获.JPG

TA的精华主题

TA的得分主题

发表于 2012-3-13 22:35 | 显示全部楼层
liucqa 发表于 2012-3-13 15:47
Private Sub Workbook_Open()
    '打开“信任对VBA工程对象模型的访问”
    If Not SecuritySet(ThisWo ...

这个代码好。有新意。谢谢

TA的精华主题

TA的得分主题

发表于 2016-7-8 00:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这个自动打开信任对VBA工程对象模型的访问好用
   

TA的精华主题

TA的得分主题

发表于 2017-2-24 19:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zhaogang1960 发表于 2012-3-13 15:42
如果你引用microsoft scripting runtime 是为了创建字典对象:
前期绑定需要引用
Dim d As New Dictiona ...

老师,能不能跟您问个问题,附件可见。或http://club.excelhome.net/thread-1330363-1-1.html

附件2.zip

24.8 KB, 下载次数: 18

TA的精华主题

TA的得分主题

发表于 2017-12-31 20:26 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sub 数据工厂_VBA_数据模型_通过GUID_自动添加_引用_需要调用的_对象()
    '--注意以后,如果程序中,需要调用其他的引用,也需要随时增加到这段代码中
    On Error Resume Next
    Application.DisplayAlerts = False
    Set EL_App = GetObject(, "Excel.Application")
    '1>.--Visual Basic For Applications
     EL_App.Thi
     sWorkbook.VBProject.References.AddFromGuid GUID:="{000204EF-0000-0000-C000-000000000046}", Major:=4, Minor:=0
    '2>.--Microsoft Excel 12.0 Object Library
     EL_App.ThisWorkbook.VBProject.References.AddFromGuid GUID:="{00020813-0000-0000-C000-000000000046}", Major:=1, Minor:=6
    '3>.--Microsoft Forms 2.0 Object Library
     EL_App.ThisWorkbook.VBProject.References.AddFromGuid GUID:="{0D452EE1-E08F-101A-852E-02608C4D0BB4}", Major:=2, Minor:=0
    '5.3>.--Microsoft Office 12.0 Object Library
     EL_App.ThisWorkbook.VBProject.References.AddFromGuid GUID:="{0002E157-0000-0000-C000-000000000046}", Major:=5, Minor:=3    '版本5.3
    With Application
        .SendKeys "{TAB}~"   '发送Alt+V Tab Enter键,完成选择 %V
'        .CommandBars.FindControl(ID:=3627).Execute
    End With
    '13>.--Microsoft Scripting Runtime
     EL_App.ThisWorkbook.VBProject.References.AddFromGuid GUID:="{420B2830-E718-11CF-893D-00A0C9054228}", Major:=1, Minor:=0
    Application.DisplayAlerts = True
End Sub

TA的精华主题

TA的得分主题

发表于 2023-2-20 22:57 | 显示全部楼层
zhaogang1960 发表于 2012-3-13 15:42
如果你引用microsoft scripting runtime 是为了创建字典对象:
前期绑定需要引用
Dim d As New Dictiona ...

这两种方法对程序运行有什么不同么?
比如 word.Application 这个对象。 在前期绑定和后期绑定时,对程序影响大?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 22:38 , Processed in 0.032642 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表