Qual è la durata di una variabile globale in excel vba?

Ho una cartella di lavoro che dichiara una variabile globale destinata a contenere un object COM.

Global obj As Object 

Lo initalizzo nell’evento Workbook_Open in questo modo:

 Set obj = CreateObject("ComObject.ComObject"); 

Posso vedere che è stato creato e in quel momento posso fare alcune chiamate COM ad esso.

Sul mio foglio ho un mucchio di celle che assomigliano a:

 =Module.CallToComObject(....) 

All’interno del modulo ho una funzione

 Function CallToComObject(...) If obj Is Nothing Then CallToComObject= 0 Else Dim result As Double result = obj.GetCalculatedValue(...) CallToComObject= result End If End Function 

Riesco a vedere questi lavori per un po ‘, ma dopo che alcuni fogli sono stati aggiornati, l’object obj non è più inizializzato, cioè è impostato su Nothing.

Qualcuno può spiegare quello che dovrei cercare che può causare questo?