ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 名课 - Power BI数据分析与可视化实战 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
Python自动化办公应用大全 Excel 2021函数公式学习大典 Kutools for Office 套件发布 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: sj15627581616

[已解决] 自动前期绑定

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-5-19 09:27 | 显示全部楼层
xiaocake 发表于 2020-5-19 09:17
听你说的猜测你是想要自动添加引用,在Excel里面写VBA代码,默认与Excel相关的引用已经自动添加了。
难 ...

以字典为例,我希望我的电脑上,每个EXCEL表格不管新建还是下载的,打开时就要是默认已经进行过前期绑定的,明白我意思吗?

TA的精华主题

TA的得分主题

发表于 2020-5-19 09:34 | 显示全部楼层
sj15627581616 发表于 2020-5-19 09:27
以字典为例,我希望我的电脑上,每个EXCEL表格不管新建还是下载的,打开时就要是默认已经进行过前期绑定 ...

概念都搞错了,怪不得。。。
你自己搜“VBA自动添加引用”

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-5-19 09:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
xiaocake 发表于 2020-5-19 09:34
概念都搞错了,怪不得。。。
你自己搜“VBA自动添加引用”

你在指手动进行前期绑定?你甚至没明白我发这个帖到底想要什么,我要的就是我在我的电脑上所有的工作簿都是默认进行过前期绑定的,你在一个工作簿中进行过前期绑定,你换一个还是默认前期绑定的?每个都得进行一次手动前期绑定好吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-5-19 09:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
xiaocake 发表于 2020-5-19 09:34
概念都搞错了,怪不得。。。
你自己搜“VBA自动添加引用”

你所说的这个 百度都是说的前期绑定跟后期绑定这两者,我所说的是 针对电脑上每一个工作簿都默认为前期绑定状态

TA的精华主题

TA的得分主题

发表于 2020-5-19 11:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
sj15627581616 发表于 2020-5-19 09:45
你所说的这个 百度都是说的前期绑定跟后期绑定这两者,我所说的是 针对电脑上每一个工作簿都默认为前期绑 ...

不就是在写代码的时候不想手动去勾选那个引用嘛。
VBA自动添加引用的代码,难道你都看过了?看了没有一点点想法?为嘛这么快就下结论?

下面的方法不香嘛?
准备一个 “有绑定”的工作薄作为模板,需要写代码的时候,对着这个模板文件 右键  新建
或者直接复制一个出来。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-5-19 12:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
xiaocake 发表于 2020-5-19 11:49
不就是在写代码的时候不想手动去勾选那个引用嘛。
VBA自动添加引用的代码,难道你都看过了?看了没有一 ...

你说的这个对本机以外的报表不通用,二楼的说法已经最接近了,唯一的缺点就是不能像工作簿OPEN事件一样,随着每个工作簿启动而启动

TA的精华主题

TA的得分主题

发表于 2020-5-19 12:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼主的表述没有问题,但实际操作就是自动添加引用,所以回答者的说法也没有问题,这个是能实现的。

TA的精华主题

TA的得分主题

发表于 2020-5-19 14:49 | 显示全部楼层
本帖最后由 xiaocake 于 2020-5-19 14:53 编辑

打开任意工作薄,自动添加引用,已经实现,是在个人宏工作薄中写代码实现。
步骤如下:
1.打开任意一个Excel文件,录制宏 ,跳出录制宏窗口,保存在  选 "个人宏工作薄"
  然后在Excel里面做任意的操作,然后停止录制宏。
  此步骤是为了创建 "个人宏工作薄"。

2.打开VBA代码编辑器,在工程资源管理器中,会出现  PERSONAL.XLSB
  把刚才录制得到的模块删掉(可以不删的,不影响)

3.下面开始在这个PERSONAL.XLSB里面干活了
(1)插入标准模块,输入下面代码:
Public nty As NewWorkbookNotify
Sub Auto_Open()
    On Error Resume Next
    Set nty = New NewWorkbookNotify
    Set nty.xlApp = Application    MsgBox "个人宏工作薄已经打开!"
End Sub

(2)插入类模块类模块的名字 改成 NewWorkbookNotify
类模块的内容如下:
Option Explicit
Public WithEvents xlApp As Application
Private Sub xlApp_NewWorkbook(ByVal wb As Workbook)
    MsgBox "新建了一个文件!"
    AddRefs wbEnd Sub
Private Sub xlApp_WorkbookOpen(ByVal wb As Workbook)
    MsgBox "打开了一个文件!"
    AddRefs wb
End Sub

Private Function AddRefs(ByVal wb As Workbook)
    On Error Resume Next
    Dim ref, tmptxt    tmptxt ="刚才打开的工作薄所有的引用对应的GUID如下:"
    For Each ref In wb.VBProject.References
        tmptxt = tmptxt & vbNewLine & ref.GUID
    Next
    MsgBox tmptxt
    If InStr(tmptxt, "{420B2830-E718-11CF-893D-00A0C9054228}") > 0 Then
        MsgBox "Microsoft Scripting Runtime 先前已经加载!"
    Else
        wb.VBProject.References.AddFromGuid GUID:="{420B2830-E718-11CF-893D-00A0C9054228}", Major:=0, Minor:=0
        Select Case Err.Number
            Case 32813
                'MsgBox "Microsoft Scripting Runtime 先前已经加载!"
                '引用已经加载,无需做任何事情
            Case 0
                MsgBox "Microsoft Scripting Runtime 本次加载成功!"
            Case Else
                '加载出现错误
                MsgBox "加载出现错误!"
        End Select
    End If
End Function

点一下 保存

4.关闭所有excel文件。个人宏工作薄也会自动关闭

5.打开任意Excel文件,看效果。





评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-5-20 10:40 | 显示全部楼层
xiaocake 发表于 2020-5-19 14:49
打开任意工作薄,自动添加引用,已经实现,是在个人宏工作薄中写代码实现。
步骤如下:
1.打开任意一个Ex ...

运用了类模块,目前还没有学到这一块之间的运用
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-12-24 23:47 , Processed in 0.104768 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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