Belirtiler
Microsoft Office Excel'de, çalışma sayfasının veya çalışma kitabının "arkasında" bulunan Microsoft Visual Basic for Application (VBA) makro kodu düzgün çalışmayabilir.
Neden
Aşağıdaki koşulların her ikisi de doğruysa bu durum oluşur:
-
Söz konusu kod, Auto_Open veya Auto_Close alt yordam gibi otomatik olarak çalışan bir alt yordam içinde yer alır.
-
Kod bir Visual Basic modülünde değil, çalışma sayfasının veya çalışma kitabının kendisini "arkasında" içerir.
Geçici Çözüm
Microsoft Excel'de otomatik olarak çalıştırılan alt dizinlerin düzgün çalışması için visual basic modülünün içinde yer almaları gerekir.
Çalışma kitabına bir Visual Basic modülü eklemeniz ve kodu yeni modüle yerleştirmeniz gerekir.
Visual Basic modülü eklemek için:
-
Visual Basic Düzenleyicisi'ndeki Proje Gezgini'nde, söz konusu kodu içeren çalışma kitabını etkinleştirin.
-
Ekle menüsünde Modül'e tıklayın.
Yeni modül eklendikten sonra kodu özgün konumundan kesin ve Visual Basic modülüne yapıştırın. Ardından çalışma kitabını kaydedin.
Ek Bilgi
Excel'de VBA kodu üç farklı konumda depolanabilir: Visual Basic modülünde, Visual Basic sınıf modülünde ve çalışma sayfalarının ve çalışma kitaplarının "arkasında".
Çalışma sayfasının veya çalışma kitabının "arkasındaki" kodu düzenlemek için:
-
Visual Basic Düzenleyicisi'ni etkinleştirin (ALT+F11 tuşlarına basın).
-
Proje Gezgini penceresinde aşağıdakine benzer girdiler görürsünüz:
VBAProject (Book1)
Microsoft Excel Objects
Sheet1 (Sheet1)
Sheet2 (Sheet2)
Sheet3 (Sheet3)
ThisWorkbook
Modules
Module1
Çalışma sayfası adlarından birine veya ThisWorkbook'a çift tıklarsanız, kod penceresine kod yazabilirsiniz. Visual Basic modülünde bulunmayan bu tür kodlar çalışma sayfasının "arkasında" olarak kabul edilir veya
Thisworkbook.
Auto_Open, Auto_Close veya otomatik olarak çalışan başka bir alt yordam bir çalışma sayfasının veya ThisWorkbook'un "arkasında" depolanıyorsa, çalışma kitabınızı açtığınızda veya kapattığınızda veya alt yordamın çalışmasına neden olması gereken bir eylem gerçekleştirdiğinizde düzgün çalışmayabilir.