VBA Dönüşü - VBA'da GoSub İade Beyanı Nasıl Kullanılır?

Excel VBA İade Beyanı

VBA harika ve VBA kodlamasının giriş ve çıkışını bilenler için bir cankurtaran. İşyerimizde tonlarca zaman kazandırabilir. Daha önceki makalelerimizde, birçok şeyi ve VBA dönüşü kavramını tartıştık. Böyle bir kavram GoSub Return ifadesidir. Bu yazıda size bu kavramları tanıtacağız.

GoSub İade Beyanı nedir?

"Go Sub" ifadesi, adla etiket tarafından belirtilen kod satırına gideceği ve "Return" ifadesini bulana kadar belirli bir görev kümesini gerçekleştireceği anlamına gelir.

Bu, "GoTo Etiketi" hata işleyici ifadesine benzer, ancak "GoSub Return" ün yaptığı şey, etiket adından devam etmek yerine bir sonraki kod satırına geri dönmesidir.

Aşağıda, VBA GoSub Return ifadesinin sözdizimi verilmiştir.

GoSub (Etiket Adı)  … Kod Satırı  (Etiket Adı):  … Görevi gerçekleştirmek için Kod Satırı

Sözdizimini okuyarak anlamanın zor olduğunu biliyorum, ancak örneği kullanarak kavramı anlayabilirsiniz.

Örneklere geçmeden önce, bu ifade hakkında birkaç şey söyleyeyim.

  • GoSub deyimi, aynı rutin veya İşlev içindeki bir etiketle adlandırılan VBA'daki alt rutini çağırır.
  • Hem GoSub hem de Return aynı prosedür içinde olmalıdır. Burada başka bir alt rutin makrosu çağıramayız.
  • İstediğiniz sayıda GoSub İade ifadesi sunabilirsiniz.
  • Bir dönüş ifadesi, kodun bir etiket adıyla belirtilen alt prosedüre atlamadan önce kaldığı yerden yürütülmesine devam edecektir.

GoSub İade Beyanı VBA'da nasıl kullanılır?

Örnek 1

Bu ifadenin kullanımını anlamak için önce aşağıdaki koda bakın. Daha sonra size kodu satır satır açıklayacağım.

Kod:

Alt Go_Sub_Return () GoSub Makro1 'Etiket Adı1 GoSub Makro2' Etiket Adı2 GoSub Makro3 'Etiket Adı3 Çıkış Alt Makro1: MsgBox "Şimdi Macro1 çalıştırılıyor" Dönüş Macro2: MsgBox "Şimdi çalışıyor Macro2" Dönüş Makrosu3: İleti Kutusu "Şimdi Macro3 çalışıyor" Dönüş Son Alt

Bu kodu anlamak için F8 tuşuna basarak kodu satır satır çalıştıralım. F8 tuşuna ilk kez basıldığında, makroyu çalıştırmaya başlayacaktır.

Şimdi bir sonraki satıra geçmek için F8 tuşuna bir kez daha basın.

Makronun kodu satır satır çalıştıracağını hepimiz biliyoruz, ancak F8 tuşuna basarsanız sonraki satıra gitmez; daha ziyade farklı çalışır.

"Macro1" adlı etikete atladı çünkü önceki "GoSub" ifadesinde, makroya "Macro1" alt prosedür etiket adına gitme talimatı vermiştik, dolayısıyla buna göre ilgili etiket adına atladı.

Şimdi F8 tuşuna basarak, excel makrosu, sonucu mesaj kutusunda gösterme “Macro1” etiket görevini gerçekleştirecektir.

Kodlama penceresine dönmek için mesaj kutusundaki Tamam'a tıklayın.

Şimdi “Dönüş” ifadesini vurgulamıştı. F8 tuşuna bir kez daha basarsanız, yaptığı şey, etiket adına atlamadan önce önceki kod satırına "Geri Dön" olacaktır.

En son “GoSub Macro1” kodunu çalıştırdı ve etiket adı “Macro1” görevini gerçekleştirdi. "Return" ifadesinden bahsettiğimiz için, bir sonraki kod satırına geri dönüyor, yani

"GoSub Makro2"

İfadenin söylediği şey, "Macro2 adlı go-etiketidir". Aşağıda "Macro2" etiketi için, belirli bir görev dizisinden bahsetmiştim.

Şimdi, mesaj kutusunda değer göstermenin ikinci alt prosedür görevini alacağız.

Şimdi tıklayın, Tamam. İkinci "Dönüş" ifadesini vurgulayacaktır.

Şimdi F8 tuşuna tıkladığınızda, "Macro2" etiketine dönmeden önce bir sonraki kod satırına dönecektir. Şimdi "GoSub Macro3" öğesini vurgulayacaktır.

Şimdi “Macro3” etiketine gidecek, F8 tuşuna basın.

Şimdi üçüncü etiket görevi yürütülecektir.

Şimdi tıklayın, Tamam. "Dönüş" ifadesini vurgulayacaktır.

Şimdi F8 tuşuna bir kez daha basın; "Exit Sub" kod satırına geri dönecektir.

No, it will exit the subroutine. It is necessary to add the word “Exit Sub” otherwise, and it will encounter an error.

Example #2

Now take a look at one more example of using the GoSub Return statement.

Code:

Sub Go_Sub_Return1() Dim Num As Long Num = Application.InputBox (Prompt:="Please enter the number here", Title:="Divsion Number") If Num> 10 Then GoSub Division Else MsgBox "Number is less than 10" Exit Sub End If Exit Sub Division: MsgBox Num / 5 Return End Sub

This code will ask you to enter the number which is>10. If the number is>10, then it will perform the task of dividing it by 5 (Label Name is “Division”), or else it will show the message as “Number is less than 10”.

Things to Remember

  • Etiket adı GoSub ve Return ifadesinde aynı olmalı ve dönüş ifadesinde etiket adından sonra iki nokta üst üste (:) gelmelidir.
  • Hata mesajını önlemek için tüm dönüş ifadeleri yapıldıktan sonra her zaman Exit Sub'ı VBA'da kullanın.

Ilginç makaleler...