2016-09-01 17 views
5

Ben küresel makro yürütmek için PERSONAL.XLSB kullanın. Bunun içinde, ben de ThisWorkbook nesnesinde Bunu yaparak uygulama olayları dinlemek: Excel uygulama olaylar: Nasıl otomatik olarak bir çalışma zamanı hatası sonrasında WithEvents değişkeni sıfırlamak için?

Dim WithEvents app As Application 
Private Sub Workbook_Open() 

    Set app = Application 

End Sub 

Şimdi bütün çalışma kitabı etkinlikleri dinleyebilirsiniz her çalışma kitabı için bir etkinlik kadar Tel gerek kalmadan.

sorun makro bir istisna atar ve End makro zorunda bana neden app Değişken artık yangına tüm global olayları neden Nothing ayarlı alır böylece, tüm global değişkenler, nuked olsun her yani .

Ben otomatik olarak nulled alır zaman Application örneğine geri ayarlanmış bu değişkene sahip olabilir bazı yolu var mı?

cevap

1

Ardından hata kolu altındaki bu işlevi çağırmak tüm genel değişkenin varsayılan değerleri içeren bir kamu işlevi oluşturma Can. Aşağıda ve örnek

Dim WithEvents app As Application 
Private Sub Workbook_Open() 
    On Error Got To reset 
    Set app = Application 
On Error goto 0 
Exit Sub 
Reset: 
Call resetvar 

End Sub 

Public Sub Resetvar() 
     Set app = Application 
End Sub 
İlgili konular