Сбой Excel из-за отсутствия ссылочного xlam - PullRequest
1 голос
/ 26 ноября 2010

У меня есть два файла Excel (один xlam, а другой xlsm).Xlsm ссылается на xlam.

Если я открою xlsm перед открытием xlam, Excel вылетает.

Из xslm (используя любой программный метод) есть способ проверить, чтобы увидетьесли xlam открыт, а если нет, либо загрузите его динамически, либо покажите предупреждение о том, что xlam нужно сначала открыть перед выходом.

Я создал код, вызываемый из подпрограммы Workbook_Open в xlsm

Public Function checkReferences() As Boolean
On Error Resume Next

Dim retVal As Boolean
retVal = False

Dim i As Integer

For i = 1 To ThisWorkbook.VBProject.References.Count
    With ThisWorkbook.VBProject.References(i)
        If StrComp(.name, "PreTradeServices") = 0 Then
            retVal = True
            Exit For
        End If
    End With

Next i

checkReferences = retVal
End Function

К сожалению, Excel завершает работу до того, как будет достигнут Workbook_Open

Ответы [ 2 ]

1 голос
/ 26 ноября 2010

Как то так?

    '/**
     '
     ' VBA Function to check whether required addin is installed...
     ' @version 1.0
     ' @author Ilyas Kazi http://ilyaskazi.com
     '
     ' @param string str_filename (to parse file name to lookup for the addin)
     ' 
     ' @return boolean (true/false)
     ' 
   '**/
Function IsAddin_Installed(str_filename As String) As Boolean
    Dim aiwb As AddIn     'addin workbook

    For Each aiwb In Application.AddIns     'Loop through each addin workbook
        If UCase(aiwb.Name) = UCase(str_filename) Then
            IsAddin_Installed = True     'found
            Exit Function
        Else
            IsAddin_Installed = False
        End If
    Next

End Function
0 голосов
/ 29 ноября 2010

Как насчет добавления XLAM в качестве ссылки на VBA? Есть ли способ сохранить XLAM в централизованном месте?

...