VBA'da, aşağıdakileri kullanarak bir Alt veya İşlevden çıkabilirsiniz. Alt Çıkış veya Çıkış Fonksiyonu komutlar.
1 | Alt Çıkış |
1 | Çıkış Fonksiyonu |
Kodun yürütülmesi söz konusu olduğunda Alt Çıkış veya Çıkış Fonksiyonu, bir Alt veya İşlevden çıkar ve diğer herhangi bir kod yürütmesine devam eder.
Bir Sub on Error'dan nasıl çıkılacağını öğrenmek istiyorsanız, şu bağlantıya tıklayın: VBA On Error Exit Sub
Tüm kod yürütmeyi nasıl sonlandıracağınızı öğrenmek istiyorsanız, şu bağlantıya tıklayın: VBA End
VBA'da bir Sub'dan çıkın
Kullandığımızda ne olduğunu örnekte göreceksiniz. Alt Çıkış bir Sub'da komut. Bir Alt oluşturduk ExitSubsahip olan Alt Çıkış içeri buyurun. AltÇağrıÇıkışSub bu Sub'ı çağırır. İşte kod:
123456789101112131415161718 | Özel Alt ExitSub()Dim i Tamsayı Olaraki = 1 ila 10 içinEğer ben = 5 O zamanAlt ÇıkışMsgBox "i'nin değeri" & iBitirsonraki benAlt BitişÖzel Alt ÇağrıExitSub()ExitSub'ı arayınMsgBox "Alt Çıkış"Alt Bitiş |
İçinde ExitSubi'nin değeri 10'dan küçükse önce For Loop'a giriyoruz:
123 | i = 1 ila 10 içinsonraki ben |
Bundan sonra If komutunu kullanarak i'nin değerinin 5'e eşit olup olmadığını kontrol ederiz. Değer 5 ise, Sub'dan çıkmak ve i değeri ile Mesaj kutusuna dönmek istiyoruz:
1234 | Eğer ben = 5 O zamanAlt ÇıkışMsgBox "i'nin değeri" & iBitir |
Koşul karşılanmazsa, aşağıdaki ifade i'yi 1 artırır ve For döngüsüne tekrar girer:
1 | sonraki ben |
İçinde ÇağrıÇıkışSub, önce Sub'ı çağırıyoruz ExitSub:
1 | ExitSub'ı arayın |
Bundan sonra Mesaj kutusuna dönüyoruz:
1 | MsgBox "Alt Çıkış" |
çalıştırırsanız ÇağrıÇıkışSub, ilk olarak arayacak ExitSub. Bu kodu debug modunda çalıştırırsanız 5 kez döngüden geçeceğini göreceksiniz. 5'teNS yineleme, i değişkeninin değeri 5 olur ve kod If gövdesine girer. Şimdi Alt ExitSub çıkılır ve tekrar ÇağrıÇıkışSub. Bir sonraki satır MsgBox "Alt Çıkış":
Gördüğünüz gibi, ExitSub hemen sonra çıkılır Alt Çıkış komut, yani MsgBox “i'nin değeri” & i asla idam edilmeyecektir.
VBA'da bir İşlevden Çık
VBA'da bir işlevden çıkmak, bir Sub'dan çıkmakla benzerdir, sadece komut Çıkış Fonksiyonu. Örnekte, oluşturduğumuz ÇıkışFunc hangi bir tamsayı döndürür. Alt ÇağrıÇıkışFonksiyonu bu işlevi çağırır. İşte kod:
1234567891011121314151617181920 | Tamsayı Olarak ExitFunc() Özel İşleviDim i Tamsayı Olaraki = 1 ila 10 içinEğer ben = 5 O zamanExitFunc = benÇıkış FonksiyonuBitirsonraki benBitiş İşleviÖzel Alt CallExitFunction()Tamsayı Olarak Dim intFuncintFunc = ExitFunction()MsgBox "intFunc'ın değeri " & intFuncAlt Bitiş |
İçinde ÇıkışFunci'nin değeri 10'dan küçükse önce For Loop'a giriyoruz:
123 | i = 1 ila 10 içinsonraki ben |
Bundan sonra If komutunu kullanarak i'nin değerinin 5'e eşit olup olmadığını kontrol ederiz. Değer 5 ise fonksiyon sonucuna i değerini atarız ve fonksiyondan çıkarız:
1234 | Eğer ben = 5 O zamanExitFunc = benÇıkış FonksiyonuBitir |
Koşul karşılanmazsa, aşağıdaki ifade i'yi 1 artırır ve For döngüsüne tekrar girer:
1 | sonraki ben |
İçinde ÇağrıÇıkışFonksiyonu, önce fonksiyonu çağırıyoruz ÇıkışFunc: Bunu yapmak için değişkeni bildirmeliyiz intFunc tamsayı yazın ve sonucunu atayın ÇıkışFunc ona işlev:
123 | Tamsayı Olarak Dim intFuncintFunc = ExitFunction() |
Bundan sonra Mesaj kutusuna değeriyle geri dönüyoruz. intFunc:
1 | MsgBox "intFunc'ın değeri " & intFunc |
çalıştırırsanız ÇağrıÇıkışFonksiyonu, önce işlevi çağıracak ÇıkışFunc. Bu kodu debug modunda çalıştırırsanız 5 kez döngüden geçeceğini göreceksiniz. 5'teNS yineleme, i değişkeninin değeri 5 olur ve kod If gövdesine girer. Şimdi değeri ÇıkışFunc i olur ve fonksiyondan çıkılır ve ÇağrıÇıkışFonksiyonu. Bir sonraki satır MsgBox “intFunc'ın değeri ” & intFunc: