Kotak Mesej VBA (Ya / Tidak)

Kotak Surat VBA Excel (Ya / Tidak)

Di VBA , dengan menggunakan kotak pesan kita dapat membuat kotak pesan ya tidak yang digunakan untuk merekam input pengguna berdasarkan klik pada ya atau tidak, sintaks untuk membuat kotak pesan ya tidak adalah seperti berikut variabel = MsgBox ("Teks", vbQuestion + vbYesNo + vbDefaultButton2, "Judul Kotak Mesej") di mana pemboleh ubah mesti dinyatakan sebagai bilangan bulat.

Selalunya dalam pengekodan VBA, kita perlu mengumpulkan nilai input dari pengguna untuk melakukan beberapa tugas dan salah satu tugas tersebut untuk mengumpulkan respons Ya atau Tidak dari pengguna. Dengan menggunakan kaedah VBA MsgBox Ya Tidak, kita dapat menulis kod untuk meneruskan kod selanjutnya.

Dalam situasi tertentu, kita mungkin perlu mengemukakan pilihan Ya atau Tidak di hadapan pengguna untuk memberikan respons mereka dan berdasarkan respons itu, kita sebenarnya boleh menjalankan kod VBA.

Sebagai contoh, lihat gambar MsgBox di bawah di VBA.

Sekiranya pengguna mengatakan Ya "kita dapat menulis kod untuk melakukan tugas tertentu" dan jika pengguna mengatakan "Tidak" kita dapat menulis kod untuk melakukan set tugas yang lain.

Bagaimana Bekerja dengan MsgBox Respons Ya / Tidak

Anda boleh memuat turun Templat Ya atau Tidak Kotak Mesej VBA ini di sini - Templat VBA Kotak Mesej Ya atau Tidak Excel

Contoh # 1 - Salin dan Tampal berdasarkan Respons

Contohnya, lihat kod di bawah.

Kod:

 Sub MessageBox_Yes_NO_Example1 () Dim AnswerYes As String Dim AnswerNo As String AnswerYes = MsgBox ("Adakah Anda Ingin Menyalin?", VbQuestion + vbYesNo, "User Repsonse") If AnswerYes = vbYes Kemudian Range ("A1: A2"). Salin Range ("C1") Julat Lain ("A1: A2"). Julat Salin ("E1") Tamat Jika Sub Akhir 

Penjelasan:

Perkara di atas telah menyatakan pemboleh ubah sebagai String ie

 Dim Jawab Ya Seperti Rentetan 

Pada baris berikutnya, kami telah menetapkan nilai melalui kotak mesej yang bertanyakan "Adakah anda ingin menyalin?".

AnswerYes = MsgBox ("Adakah Anda Ingin Menyalin?", VbQuestion + vbYesNo, "User Repsonse")

Sekarang pernyataan JIKA menilai tindak balas yang diberikan melalui kotak mesej. Sekiranya hasil kotak mesej adalah vbYa maka ia akan menyalin julat A1 hingga A2 dan menampal di sel C1.

   Sekiranya JawapanYa = vbYa Kemudian Julat ("A1: A2"). Julat Salin ("C1")

Sekiranya respons yang diberikan oleh kotak mesej adalah Tidak maka ia akan menyalin julat A1 hingga A2 dan menampal di sel E1.

 Julat Lain ("A1: A2"). Julat Salin ("E1") Tamat Jika 

Ok, saya telah memasukkan beberapa nilai dalam sel A1 dan A2 sekarang.

Sekarang saya akan menjalankan kod menggunakan kunci F5 atau melalui pilihan jalan, kotak mesej akan muncul di hadapan saya dan meminta jawapan saya.

Sekiranya saya mengklik Ya, ia akan menyalin julat A1 hingga A2 dan menampal di sel C1. Sekarang saya akan klik Ya dan melihat hasilnya.

Oleh itu, ia telah melaksanakan tugas yang diberikan sekiranya responsnya adalah YA.

Sekarang saya akan menjalankan kodnya.

Kali ini saya akan memilih Tidak dan melihat apa yang berlaku.

Ya itu melaksanakan tugas yang diberikan dalam kod iaitu

 Julat Lain ("A1: A2"). Julat Salin ("E1")

Contoh # 2 - Sembunyikan & Sembunyikan Helaian Berdasarkan Respons

Kod di bawah akan menyembunyikan semua helaian kecuali lembaran aktif jika jawapannya adalah ya.

Kod:

 Sub HideAll () Jawapan Dim Sebagai String Dim Ws Sebagai Lembaran Kerja Jawapan = MsgBox ("Adakah Anda Ingin Menyembunyikan Semua?", VbQuestion + vbYesNo, "Hide") Jika Jawapan = vbYa Kemudian Untuk Setiap Ws di ActiveWorkbook.Wheets Works If Ws.Name ActiveSheet.Name Kemudian Ws.Visible = xlSheetVeryHidden Next Ws ElseJika Jawapan = vbTidak Kemudian MsgBox "Anda telah memilih untuk tidak menyembunyikan helaian", vbInformation, "No Hide" End if End Sub 

Kod di atas akan menyembunyikan semua lembaran kerja kecuali helaian yang kita ada sekarang jika respons dari kotak mesej adalah YA.

Sekiranya respons dari kotak pesan TIDAK, ia akan memaparkan kotak pesan yang bertuliskan "Anda telah memilih untuk tidak menyembunyikan helaian".

Begitu juga, kod di bawah akan memperlihatkan helaian jika jawapannya Ya.

Kod:

 Sub UnHideAll () Jawapan Dim Sebagai String Dim Ws Sebagai Lembaran Kerja Jawapan = MsgBox ("Adakah Anda Ingin Menyembunyikan Semua?", VbQuestion + vbYesNo, "Hide") Jika Jawapan = vbYa Kemudian Untuk Setiap Ws di ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws ElseJika Jawapan = vbTidak Kemudian MsgBox "Anda telah memilih untuk tidak menyembunyikan helaian", vbInformasi, "Tidak Sembunyikan" Tamat Jika Akhir Sub 

Ini berfungsi sama seperti kod penyembunyian, jika ya, ia tidak akan disembunyikan, jika tidak, ia tidak akan disembunyikan.