我想以编程方式添加/修改xlsm / xlam文件的引用。到目前为止,我有这段代码
Dim xBook As Workbook
Dim vbProj As VBIDE.VBProject
Set xBook = Application.Workbooks.Open(Filename:="D:\Desktop\testFileForReferenceAdding.xlsm", ReadOnly:=False)
Set vbProj = xBook.VBProject
vbProj.References.AddFromFile ("D:\Desktop\libs\xlam\libError.xlam")
xBook.Close SaveChanges:=True
Set xBook = Nothing
问题在于,即使我可以在项目资源管理器中看到libError.xlam
被添加到xBook
,但添加的libError.xlam
参考书在关闭本书时仍无法生效 - 当我重新打开相同的工作簿,引用已经消失。如何使引用持久化?
修改 但是,此代码按预期工作
Private Sub Workbook_Open()
ThisWorkbook.VBProject.References.AddFromFile ("D:\Desktop\libs\xlam\libError.xlam")
ThisWorkbook.Save
End Sub
不幸的是,我想更改其他xlsm文件的引用,而不仅仅是ThisWorkBook。
EDIT2 经过半天的摆弄,结论是:代码适用于添加对 xlam 文件的xlam引用,不用于添加xlam引用 xlsm < / strong>文件。为什么会如此仍然是一个谜。
答案 0 :(得分:1)
XLAM文件以只读格式打开。虽然您可以添加引用,但不能在该状态下“保存”文件。您可以将它保存为新文件,删除旧文件,重命名等等,但这有点麻烦....
解决方案是在之前添加参考保存为XLAM /编译格式,和/或使用后期绑定,这样您就不会首先需要引用