添加来自VBA导致密码提示的引用出现

编辑:我会给这个300代表BOUNTY 🙂

我已经用完了想法。 我有一个非常简单的macros添加引用。

它看起来像我有同样的问题,这http://www.eggheadcafe.com/software/aspnet/35651964/excel-prompts-for-vba-pas.aspx

Sub testAddSolver() Call AddSolver() End Sub Sub AddSolver() Dim strSolverPath As String Dim wbSolver As Workbook Dim objRef As Object Dim oWB As Object ' NOT as workbook Dim ad As AddIn On Error GoTo errH Set oWB = ActiveWorkbook With Application.AddIns("Solver Add-In") strSolverPath = .FullName On Error Resume Next Set wbSolver = Workbooks(.name) On Error GoTo errH If wbSolver Is Nothing Then .Installed = True End If End With On Error Resume Next Set objRef = oWB.VBProject.References("SOLVER") On Error GoTo errH If objRef Is Nothing Then Call MsgBox(strSolverPath) oWB.VBProject.References.AddFromFile strSolverPath End If Call MsgBox("Compleetd") Exit Sub errH: MsgBox Err.Description, , "Error in AddSolver" End Sub 

这个添加引用工作正常,直到我在VBA周围input一个密码,这个密码提示我input密码。

我已经尝试了一切

你的密码保护了你的VBA项目。 因此,对该项目所做的任何更改都需要将其打开,以便获取密码提示。

您可以尝试创build一个加载项来解决此问题。 这可能是因为你正在创build一个DLL / XLA从VBA代码,所以你应该能够添加引用。

XLA

将包含您的代码的工作簿保存为“Microsoft Office Excel加载项(.xla)”

DLL

要创build加载项,您需要Office XP开发人员。 微软表示这个工具不支持更新版本的Office,但是这些版本都使用VBA / VBE v6.x. 我从来没有在Office 2003中的这些工具的任何问题。

请注意,如果您希望ActiveWorkbok指向您的代码,那么在使用加载项时,您将不得不调整这些语句。

如果取消选中“locking要查看的项目”checkbox,则在代码尝试设置引用时,将不会收到提示。 但是我不确定保护的重点是什么。

可悲的是,我想你已经沉没了。 如果您想以编程方式添加引用,则需要访问代码。

项目引用已成功添加到受保护的VBA项目在运行时以编程方式。 无论如何,它会抛出密码提示。 即使您点击取消button,项目引用也会成功添加。