Добавление ссылок из VBA, вызывающее пароль, появляется - PullRequest
1 голос
/ 23 марта 2010

РЕДАКТИРОВАТЬ: Я дам 300 репутацию за это: -)

У меня закончились идеи. У меня есть очень простой макрос, который добавляет ссылки.

Похоже, у меня такая же проблема, как у этого 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, после чего он запрашивает у меня пароль.

Я попробовал абсолютно все

Ответы [ 3 ]

4 голосов
/ 24 марта 2010

Ваш пароль защищен вашим проектом VBA. Поэтому любые изменения в этом проекте требуют его открытия, поэтому вы получите запрос пароля.

Вы можете попробовать создать надстройку, чтобы обойти эту проблему. Это может сработать, потому что вы создаете DLL / XLA из кода VBA, поэтому вы сможете добавлять ссылки.

XLA

Сохраните книгу, содержащую ваш код, как «Надстройка Microsoft Office Excel (.xla)»

DLL

Для создания надстройки необходим разработчик Office XP. Microsoft заявляет, что этот инструмент не поддерживается для более новых версий Office, но все эти версии используют VBA / VBE v6.x. У меня никогда не было проблем с этими инструментами в Office 2003.

Обратите внимание: если вы ожидаете, что ActiveWorkbok будет указывать на ваш код, вам придется настроить эти операторы при работе с надстройкой.

0 голосов
/ 11 сентября 2015

Ссылка на проект успешно добавлена ​​в защищенный проект VBA программным способом во время выполнения. В любом случае он выдаст запрос на ввод пароля. Даже если вы нажмете кнопку «Отмена», ссылка на проект будет успешно добавлена.

0 голосов
/ 23 марта 2010

Если вы снимите флажок «Блокировать проект для просмотра», вы не получите подсказку, когда ваш код попытается установить ссылку.Но тогда я не уверен, какой смысл защиты.

К сожалению, я думаю, что вы утонули.Если вы хотите добавить ссылку программно, вам понадобится доступ к коду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...