Kotak VBA Msg Ya / Tidak - Bagaimana Membuat Respons 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 lebih jauh.

Dalam situasi tertentu, kita mungkin perlu menunjukkan pilihan Ya atau Tidak di hadapan pengguna untuk memberikan respons mereka, dan berdasarkan respons tersebut. 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?

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

Di baris berikutnya, kami telah menetapkan nilai melalui kotak pesan yang bertanya, "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.

Sekali lagi, saya akan menjalankan kodnya.

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

Ya, ia 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 helaian 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 Then 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.

Jika respons dari kotak pesan TIDAK, ia akan memaparkan kotak pesan yang mengatakan, "Anda telah memilih untuk tidak menyembunyikan lembaran."

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", vbInformation, "No Hide" End if End Sub

Ini berfungsi sama seperti kod penyembunyian; jika ya, ia tidak akan berlaku. Sekiranya tidak, ia tidak akan berlaku.

Artikel menarik...