Pulangan VBA

Penyata Pulangan VBA Excel

VBA sangat indah dan penyelamat bagi mereka yang mengetahui pengekodan VBA masuk dan keluar, ia dapat menjimatkan banyak masa di tempat kerja kami. 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 penyataan GoSub Return VBA.

GoSub [Nama Label] … .. Baris Kod [Nama Label]: … .. Baris Kod untuk melaksanakan tugas

Saya tahu sukar difahami daripada membaca sintaksnya tetapi dengan menggunakan contoh anda mungkin dapat memahami konsepnya.

Sebelum saya pergi ke contoh, izinkan saya memberitahu beberapa perkara mengenai penyataan 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 boleh memanggil makro subrutin lain di sini.
  • Anda boleh memperkenalkan sebilangan penyata GoSub Return.
  • Penyataan pengembalian akan meneruskan pelaksanaan kod dari mana ia ditinggalkan sebelum melonjak ke subproses yang ditunjukkan dengan nama label.

Bagaimana menggunakan GoSub Return Statement di VBA?

Anda boleh memuat turun Template VBA Return Excel ini di sini - Templat VBA Return Excel

Contoh # 1

Untuk memahami penggunaan pernyataan ini, perhatikan 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 kod baris demi baris, tetapi jika anda menekan kekunci F8, ia tidak akan pergi ke baris seterusnya sebaliknya ia berfungsi dengan cara yang berbeza.

Ini telah melonjak ke label bernama "Macro1", ini kerana dalam pernyataan sebelumnya "GoSub" kami telah mengarahkan makro untuk pergi ke nama label subproses "Macro1", jadi dengan demikian ia telah melompat ke nama label masing-masing.

Sekarang dengan menekan F8 kunci excel makro akan menjalankan tugas label "Macro1" untuk menunjukkan hasilnya di kotak pesan.

Klik Ok pada kotak mesej untuk kembali ke tetingkap pengekodan.

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

Kali terakhir ia menjalankan kod "GoSub Macro1" dan menjalankan tugas label nama "Macro1" 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 akan pergi ke label "Macro3", tekan kekunci F8.

Sekarang tugas label ketiga akan dilaksanakan.

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

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

Tidak, ia akan keluar dari subrutin. Anda perlu menambahkan kata "Exit Sub" jika tidak, ia akan mengalami kesalahan.

Contoh # 2

Sekarang perhatikan satu lagi contoh penggunaan pernyataan GoSub Return.

Kod:

 Sub Go_Sub_Return1 () Dim Num As Long Num = Application.InputBox (Prompt: = "Please masukkan number here", Judul: = "Divsion Number") Jika Num> 10 Maka GoSub Division Else MsgBox "Nombor kurang dari 10" Keluar Sub End Sekiranya Keluar Sub Division: MsgBox Num / 5 Sub End End 

Kod ini akan meminta anda memasukkan nombor yang> 10, jika bilangannya> 10 maka ia akan melakukan tugas membaginya dengan 5 (Nama Label adalah "Bahagian") atau yang lain akan menunjukkan mesej sebagai "Nombor adalah kurang dari 10 ".

Perkara yang Perlu Diingat

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