Penyata GoTo VBA

Penyata GoTo Excel VBA

Pernyataan VBA GoTo digunakan ketika ralat berlaku semasa menjalankan kod dan bukannya menampilkan ralat untuk menyambung semula baris kod seterusnya dengan mengabaikan mesej ralat. Terdapat dua jenis pernyataan GOTO yang pertama adalah memilih mana-mana julat lembaran kerja dalam buku kerja yang ditentukan dan yang lain adalah pengendali ralat.

Untuk mengatasi kesalahan yang diantisipasi dalam VBA, kami memiliki fungsi yang disebut "GOTO". Kami akan melihat kedua-dua jenis pernyataan GoTo dalam artikel ini.

2 Cara menggunakan Pernyataan GoTo dalam Kod VBA

Anda boleh memuat turun Templat VBA GoTo Excel ini di sini - Templat VBA GoTo Excel

# 1 - Kaedah Aplikasi.GoTo

Sekiranya anda ingin pergi ke buku kerja atau lembaran kerja tertentu di semua buku kerja yang dibuka maka kita boleh menggunakan kaedah pernyataan Application.GoTo.

Mari lihat sintaks kaedah Application.GoTo

  • [Rujukan]: Ini hanyalah rujukan sel yang ditentukan. Sekiranya rujukan tidak diberikan secara lalai, ia akan membawa anda ke julat sel yang terakhir digunakan.
  • [Tatal]: Ini adalah pernyataan logik BENAR atau SALAH. Sekiranya nilainya BENAR maka akan menatal melalui tetingkap, jika nilainya jika PALSU tidak akan menatal melalui tetingkap.
Contohnya

Sekiranya anda ingin pergi ke sel tertentu dalam lembaran kerja tertentu, kami boleh menggunakan kaedah Goto. Saya mempunyai 3 helai yang diberi nama Jan, Feb, dan Mar.

Sekarang jika saya ingin pergi ke sel C5 dalam helaian Jan, saya akan menggunakan set kod di bawah ini.

Langkah 1: Mulakan nama makro excel.

Kod:

 Sub GoTo_Contoh1 () Akhir Sub 

Langkah 2: Mulakan kaedah " Application.GoTo "

Kod:

Sub GoTo_Contoh1 ()

Permohonan. Pergi

Sub Akhir

Langkah 3: Dalam argumen rujukan kita perlu menentukan nama lembaran kerja dan dalam lembaran kerja itu, kita perlu menyebutkan sel tertentu.

Kod:

 Sub GoTo_Example1 () Application.Goto Reference: = Lembaran Kerja ("Jan"). Julat ("C5") Sub Akhir 

Langkah 4: Sebut tatal sebagai BENAR.

Kod:

 Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Julat ("C5"), Scroll: = True End Sub 

Langkah 5: Sekarang jalankan kod ini menggunakan kekunci F5 atau anda juga boleh menjalankan kod ini secara manual, ia akan membawa anda ke lembaran dan sel yang ditentukan.

Sekarang saya akan menukar argumen tatal menjadi SALAH dan melihat perubahan yang akan dihadapi.

 Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Julat ("C5"), Scroll: = False End Sub 

Sekiranya anda ingin pergi ke buku kerja tertentu maka anda perlu menyebut nama buku kerja juga sebelum nama buku kerja.

 Sub GoTo_Example1 () Application.Goto Reference: = Workbooks ("Book1.xlsx"). Lembaran kerja ("Jan"). Julat ("C5"), Tatal: = Sub Akhir Akhir 

# 2 - Kaedah Penangan Ralat

Apabila baris kod tertentu mengalami ralat maka VBA berhenti melaksanakan kod yang selebihnya dan menunjukkan mesej ralat.

Contohnya lihat garis kod di bawah.

 Sub GoTo_Example2 () Helaian ("April"). Padam Helaian. Tambahkan Sub Akhir 

Kod di atas mengatakan untuk menghapus helaian April dan menambah helaian baru. Dalam buku kerja aktif jika ada nama helaian yang disebut April, ia akan dipadamkan atau yang lain akan menunjukkan kotak dialog mesej ralat di bawah.

Semasa saya menjalankan kod ini, buku kerja saya tidak mempunyai lembaran yang disebut April, jadi kod VBA tidak dapat menemukan nama helaian dan melemparkan ralat. Kadang-kadang kita perlu mengabaikan ralat ini kerana sering kali jika tidak ada nama lembaran yang disebut April maka kita perlu meneruskan baris kod yang lain.

Untuk menghilangkan ralat ini kita boleh menggunakan kaedah GoTo sebagai pengendali ralat.

Sekarang saya akan mengubah kod sebagai Kesalahan pada pergi ke baris seterusnya

 Sub GoTo_Example2 () Pada Ralat GoTo NextLine Sheets ("April"). Padam NextLine: Sheets.Add End Sub 

Sekarang jika anda menjalankannya, ia akan menambah lembaran baru walaupun tidak ada nama lembaran yang disebut April.

Pernyataan "On Error GoTo NextLine" memahami bahawa jika ada kesalahan berlaku, ia akan melonjak ke baris seterusnya dan pada baris seterusnya kod VBA adalah untuk menambahkan lembaran baru.

Perkara yang Perlu Diingat

  • Sekiranya anda ingin melompat ke baris seterusnya apabila ralat berlaku, anda juga boleh menggunakan pernyataan On Error Resume Next VBA.
  • Untuk melonjak ke tahap berikutnya, anda perlu memastikan bahawa garis kod tertentu itu dijangkakan sebagai kesalahan.
  • Sekiranya garis penting kod tersebut dilangkau dengan pengendali ralat ini, maka tugas anda mungkin tidak dapat diselesaikan dengan sempurna.