|
|
本帖最后由 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
查看全部评分
-
|