VBA Kembali - Bagaimana Cara Menggunakan Pernyataan Pengembalian GoSub di VBA?

Pernyataan Pengembalian VBA Excel

VBA luar biasa dan penyelamat bagi mereka yang tahu masuk dan keluar dari pengkodean VBA. Ini dapat menghemat banyak waktu di tempat kerja kita. Di artikel kami sebelumnya, kami telah membahas banyak hal dan konsep pengembalian VBA. Salah satu konsep tersebut adalah pernyataan Pengembalian GoSub. Pada artikel ini, kami akan memperkenalkan Anda pada konsep-konsep ini.

Apa itu Pernyataan Pengembalian GoSub?

Pernyataan "Go Sub" berarti itu akan menuju ke baris kode yang ditunjukkan oleh label melalui nama dan melakukan serangkaian tugas tertentu sampai menemukan pernyataan "Kembali."

Ini mirip dengan pernyataan penanganan kesalahan "GoTo Label", tetapi yang dilakukan "GoSub Return" adalah akan kembali ke baris kode berikutnya daripada melanjutkan dari nama label.

Di bawah ini adalah sintaks dari pernyataan Pengembalian GoSub VBA.

GoSub (Nama Label)  … Baris Kode  (Nama Label):  … Baris Kode untuk melakukan tugas

Saya tahu sulit untuk memahami dari membaca sintaks tetapi dengan menggunakan contoh, Anda mungkin dapat memahami konsepnya.

Sebelum saya membahas contoh, izinkan saya memberi tahu beberapa hal tentang pernyataan ini.

  • Pernyataan GoSub memanggil subrutin di VBA, yang dinamai dengan label dalam rutin atau Fungsi yang sama.
  • Baik GoSub dan Return harus berada dalam prosedur yang sama. Kami tidak dapat memanggil makro subrutin lain di sini.
  • Anda dapat memperkenalkan sejumlah pernyataan Pengembalian GoSub.
  • Pernyataan kembali akan melanjutkan eksekusi kode dari tempat yang ditinggalkannya sebelum melompat ke sub prosedur yang ditunjukkan dengan nama label.

Bagaimana cara menggunakan Pernyataan Pengembalian GoSub di VBA?

Contoh 1

Untuk memahami penggunaan pernyataan ini, lihat kode di bawah ini terlebih dahulu. Nanti saya akan jelaskan kode baris demi baris.

Kode:

Sub Go_Sub_Return () GoSub Makro1 'Nama Label1 GoSub Makro2' Nama Label2 GoSub Makro3 'Nama Label3 Keluar Sub Makro1: MsgBox "Sekarang menjalankan Macro1" Kembali Makro2: MsgBox "Sekarang menjalankan Macro2" Kembali Makro3: MsgBox "Sekarang menjalankan Macro3" Kembali Akhir Sub

Untuk memahami kode ini, mari kita jalankan kode baris demi baris dengan menekan tombol F8. Saat menekan tombol F8 pertama kali, itu akan memulai makro yang berjalan.

Sekarang tekan tombol F8 sekali lagi untuk pergi ke baris berikutnya.

Kita semua tahu makro akan menjalankan kode baris demi baris, tetapi jika Anda menekan tombol F8, itu tidak akan pergi ke baris berikutnya; sebaliknya, cara kerjanya berbeda.

Itu telah melompat ke label bernama "Macro1" ini karena dalam pernyataan sebelumnya "GoSub," kami telah menginstruksikan makro untuk pergi ke nama label subprocedure "Macro1", jadi sesuai, itu telah melompat ke nama label masing-masing.

Sekarang dengan menekan tombol F8, makro excel akan menjalankan tugas label "Macro1" untuk menampilkan hasilnya di kotak pesan.

Klik Ok kotak pesan untuk kembali ke jendela pengkodean.

Sekarang itu telah menyoroti pernyataan "Kembali". Jika Anda menekan tombol F8 sekali lagi, yang akan dilakukannya adalah "Kembali" ke baris kode sebelumnya sebelum melompat ke nama label.

Terakhir kali menjalankan kode "GoSub Macro1," dan menjalankan tugas nama label "Macro1". Karena kita telah menyebutkan pernyataan "Kembali", itu kembali ke baris kode berikutnya yaitu

“GoSub Macro2”

Apa yang dikatakan pernyataan itu adalah, "pergi ke label bernama Macro2". Di bawah untuk label "Macro2", saya telah menyebutkan serangkaian tugas tertentu.

Sekarang kita akan mendapatkan tugas subprocedure kedua untuk menunjukkan nilai di kotak pesan.

Sekarang klik, Ok. Ini akan menyoroti pernyataan "Kembali" kedua.

Sekarang setelah mengklik tombol F8, itu akan kembali ke baris kode berikutnya sebelum kembali ke label "Macro2". Sekarang akan menyorot "GoSub Macro3".

Sekarang akan menuju ke label "Macro3", tekan tombol F8.

Sekarang tugas label ketiga akan dijalankan.

Sekarang klik, OK. Ini akan menyoroti pernyataan "Kembali".

Sekarang tekan tombol F8 sekali lagi; itu akan melompat kembali ke baris kode "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 dalam pernyataan return nama label harus diikuti oleh titik dua (:).
  • Selalu gunakan Exit Sub di VBA setelah semua pernyataan pengembalian dibuat untuk menghindari pesan kesalahan.

Artikel yang menarik...