Pulangan VBA - Bagaimana Menggunakan Penyata Pengembalian GoSub di VBA?

Penyata Pulangan Excel VBA

VBA indah dan penyelamat bagi mereka yang mengetahui pengekodan VBA masuk dan keluar. Ia dapat menjimatkan banyak masa di tempat kerja kita. Dalam artikel sebelumnya, kami telah membincangkan banyak perkara dan konsep pengembalian VBA. Salah satu konsep tersebut adalah pernyataan GoSub Return. Dalam artikel ini, kami akan memperkenalkan konsep ini kepada anda.

Apakah Penyata Pengembalian GoSub?

Pernyataan "Go Sub" bermaksud ia akan menuju ke baris kod yang ditunjukkan oleh label melalui nama dan melakukan set tugas tertentu sehingga ia menemukan pernyataan "Return."

Ini serupa dengan pernyataan pengendali ralat "GoTo Label", tetapi apa yang dilakukan "GoSub Return" adalah ia akan kembali ke baris kod seterusnya daripada meneruskan dari nama label.

Berikut adalah sintaks pernyataan GoSub Return VBA.

GoSub (Label Name)  … Line of Code  (Label Name):  … Line of Code untuk melaksanakan tugas

Saya tahu sukar difahami daripada membaca sintaks tetapi dengan menggunakan contohnya, anda mungkin dapat memahami konsepnya.

Sebelum saya memberikan contoh, izinkan saya memberitahu beberapa perkara mengenai pernyataan ini.

  • Pernyataan GoSub memanggil subrutin dalam VBA, yang dinamakan oleh label dalam rutin atau Fungsi yang sama.
  • Kedua-dua GoSub dan Return harus berada dalam prosedur yang sama. Kami tidak dapat memanggil makro subrutin lain di sini.
  • Anda boleh memperkenalkan sebilangan penyata GoSub Return.
  • Penyataan pengembalian akan meneruskan pelaksanaan kod dari tempat ia ditinggalkan sebelum melonjak ke subproses yang ditunjukkan dengan nama label.

Bagaimana menggunakan GoSub Return Statement di VBA?

Contoh # 1

Untuk memahami penggunaan pernyataan ini, lihat kod di bawah terlebih dahulu. Kemudian saya akan menerangkan kepada anda kod baris demi baris.

Kod:

Sub Go_Sub_Return () GoSub Macro1 'Label Name1 GoSub Macro2' Label Name2 GoSub Macro3 'Label Name3 Exit Sub Macro1: MsgBox "Now running Macro1" Return Macro2: MsgBox "Now running Macro2" Return Macro3: MsgBox "Now running Macro3" Sub End End

Untuk memahami kod ini, mari jalankan kod baris demi baris dengan menekan kekunci F8. Setelah menekan kekunci F8 pertama kali, ia akan memulakan makro berjalan.

Sekarang tekan kekunci F8 sekali lagi untuk pergi ke baris seterusnya.

Kita semua tahu makro akan menjalankan baris kod demi baris, tetapi jika anda menekan kekunci F8, ia tidak akan menuju ke baris seterusnya; sebaliknya, ia berfungsi berbeza.

Ini telah melonjak ke label bernama "Macro1" ini karena dalam pernyataan sebelumnya "GoSub," kami telah mengarahkan makro untuk pergi ke nama label subproses "Macro1", oleh karena itu, ia telah melonjak ke nama label masing-masing.

Sekarang dengan menekan kekunci F8, excel macro akan menjalankan tugas label "Macro1" untuk menunjukkan hasilnya di kotak pesan.

Klik pada kotak OK untuk kembali ke tetingkap pengekodan.

Sekarang ia telah menyoroti pernyataan "Return". Sekiranya anda menekan kekunci F8 sekali lagi, apa yang akan dilakukan adalah ia akan "Kembali Kembali" ke baris kod sebelumnya sebelum melonjak ke nama label.

Kali terakhir ia menjalankan kod "GoSub Macro1," dan ia menjalankan tugas label nama "Macro1". Oleh kerana kita telah menyebut pernyataan "Return", ia kembali ke baris kod berikutnya iaitu

"GoSub Macro2"

Apa yang dinyatakan oleh pernyataan adalah, "pergi ke label bernama Macro2". Di bawah ini untuk label "Macro2", saya telah menyebut satu set tugas tertentu.

Sekarang kita akan mendapat tugas subproses kedua yang menunjukkan nilai di kotak mesej.

Sekarang klik, Ok. Ia akan menyoroti pernyataan “Return” kedua.

Sekarang setelah mengklik kunci F8, ia akan kembali ke baris kod seterusnya sebelum kembali ke label "Macro2". Sekarang ia akan menyoroti "GoSub Macro3".

Sekarang ia akan pergi ke label "Macro3", tekan kekunci F8.

Sekarang tugas label ketiga akan dilaksanakan.

Sekarang klik, OK. Ia akan menyoroti pernyataan "Return".

Sekarang tekan kekunci F8 sekali lagi; ia akan kembali ke baris kod "Exit Sub."

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

  • Nama label harus sama dalam pernyataan GoSub dan Return, dan pada label label pernyataan kembali harus diikuti dengan titik dua (:).
  • Sentiasa gunakan Exit Sub di VBA setelah semua penyataan pengembalian dibuat untuk mengelakkan mesej ralat.

Artikel menarik...