2010-11-26 13 views
0

2つのExcelファイル(xlamとxlsmの2つ)があります。 xlsmはxlamを参照します。参照されたxlamが見つからないためExcelがクラッシュする

xlamを開く前にxlsmを開くと、Excelがクラッシュします。

xslm(任意のプログラム方法を使用)からは、xlamが開いているかどうかを確認する方法があります。そうでない場合は、動的にロードするか、xlamを終了する前に最初に開く必要があるという警告を表示します。 。

私はそれのWorkbook_Openは、このような

答えて

1

何かに到達する前に、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サブから呼び出されるいくつかのコードを細工?

'/** 
    ' 
    ' 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

私は恐れています、xlamはアプリケーションに表示されません.Addins – Pram

0

何VBAリファレンスとしてXLAMを追加することについてはどうですか?集中型の場所にXLAMを保管できる方法はありますか?

+0

xlamはすでにVBAリファレンスです – Pram

関連する問題