gpt4 book ai didi

excel - 以编程方式添加引用会导致运行时错误

转载 作者:行者123 更新时间:2023-12-04 21:06:55 26 4
gpt4 key购买 nike

我为 Excel (Office 2011, Mac) 编写了两个 VBA 插件:第一个“基本”插件还为第二个插件提供功能。以后还会有其他的外接程序使用基本外接程序的功能……
应该可以只运行基本插件,第二个插件是可选的。

在第二个插件中,我试图添加这样的引用:

Public Sub Workbook_Open()
Application.VBE.VBProjects("SecondAddin").References.AddFromFile ("BasicAddin.xlam")
UseFunctionFromBasicAddin
End Sub

Private Sub UseFunctionFromBasicAddin()
FunctionFromBasicAddin
End Sub

但是,这会在启动 Excel 时给我一个运行时错误: Run-time error 91: Object variable or With block variable not set.
当我在出现此错误后打开 VBA 编辑器时,我可以看到现在在 SecondAddin 中正确引用了 BasicAddin.xlam - 并且当我执行 UseFunctionFromBasicAddin() 时从 VBA 编辑器中,它可以工作。它只是在启动 Excel 时不起作用。

在 VBA 编辑器 (Tools->References) 中添加引用时,加载了两个加载项,但有一个 MsgBox: "This workbook is currelty referenced by another workbook and cannot be closed."
但是,我想以编程方式添加引用,因为我怀疑在具有不同路径的不同计算机上使用插件时链接会中断?

我很乐意提供有关如何消除运行时错误的建议(或者是否有更好的方法来管理不同的加载项?)...!

最佳答案

我认为不可能修改当前工作簿的 VBA 项目引用。

这是一个 ozgrid 链接,它讨论了删除损坏的引用,他说要以编程方式执行此操作,您必须从另一个工作簿中执行此操作。

http://www.ozgrid.com/forum/showthread.php?t=23866

Hi Barbara,

1 A reference ISMISSING is added to the workbook VB-project references. (Should per se not be a problem unless You call it by code or try to install it then an error-message will be showed.

2 The below procedure must be executed from a different workbook and the target workbook must be open.

VB:


Sub Del_Broken_Ref() 
'Add a reference to the Microsoft Visual Basic for Applications Extensibility 5.3
Dim VBReferens As VBIDE.Reference
Dim VBProjekt As VBIDE.VBProject
Dim stBok As String

stBok = Workbooks("Test.xls").Name

Set VBProjekt = Workbooks(stBok).VBProject

For Each VBReferens In VBProjekt.References
If VBReferens.IsBroken Then VBProjekt.References.Remove VBReferens
Next VBReferens

End Sub

If running Excel 2002 and above You must allow access to VB-projects via Tools - Macros... - Security.

[Edit] If the add-ins VB-project is closed then You are out of luck...

关于excel - 以编程方式添加引用会导致运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12662262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com