VBA MsgBox Có / Không | Làm thế nào để tạo câu trả lời Có / Không?

Excel VBA MsgBox (Có / Không)

Trong VBA , bằng cách sử dụng hộp thông báo, chúng ta có thể tạo một hộp thư có không , được sử dụng để ghi lại thông tin nhập của người dùng dựa trên nhấp chuột vào có hoặc không, cú pháp để tạo hộp thông báo có không như sau biến = MsgBox (“Văn bản”, vbQuestion + vbYesNo + vbDefaultButton2, “Tiêu đề hộp thư”) trong đó biến phải được khai báo dưới dạng số nguyên.

Thông thường trong mã hóa VBA, chúng ta cần thu thập các giá trị đầu vào từ người dùng để thực hiện một số tác vụ và một trong các tác vụ đó để thu thập phản hồi Có hoặc Không từ người dùng. Bằng cách sử dụng phương pháp VBA MsgBox Yes No, chúng ta có thể viết mã để tiếp tục trong mã.

Trong một số tình huống nhất định, chúng tôi có thể cần trình bày tùy chọn Có hoặc Không trước mặt người dùng để đưa ra phản hồi của họ và dựa trên phản hồi đó, chúng tôi thực sự có thể chạy mã VBA.

Ví dụ, hãy xem hình ảnh bên dưới của MsgBox trong VBA.

Nếu người dùng nói Có “chúng tôi có thể viết mã để thực hiện nhiệm vụ cụ thể” và nếu người dùng nói “Không”, chúng tôi có thể viết mã để thực hiện một nhóm tác vụ khác.

Làm thế nào để làm việc với MsgBox Phản hồi Có / Không?

Bạn có thể tải xuống Hộp Thông báo VBA Có hoặc Không Mẫu Excel này tại đây - Hộp Thông báo VBA Có hoặc Không Mẫu Excel

Ví dụ # 1 - Sao chép và Dán dựa trên Phản hồi

Ví dụ, hãy xem đoạn mã dưới đây.

Mã:

 Sub MessageBox_Yes_NO_Example1 () Dim AnswerYes As String Dim AnswerNo As String AnswerYes = MsgBox ("Bạn có muốn sao chép không?", VbQuestion + vbYesNo, "User Repsonse") If AnswerYes = vbYes Then Range ("A1: A2"). Copy Range ("C1") Phạm vi khác ("A1: A2"). Phạm vi sao chép ("E1") Kết thúc Nếu kết thúc Sub 

Giải trình:

Ở trên đã khai báo biến là String tức là

 Câu trả lời mờ Có dưới dạng chuỗi 

Trong dòng tiếp theo, chúng tôi đã gán giá trị thông qua hộp thông báo hỏi “Bạn có muốn sao chép không?”.

AnswerYes = MsgBox ("Bạn có muốn sao chép không?", VbQuestion + vbYesNo, "Người dùng phản hồi")

Bây giờ câu lệnh IF đánh giá phản hồi được đưa ra thông qua hộp thông báo. Nếu kết quả hộp thông báo là vbYes thì nó sẽ sao chép phạm vi A1 sang A2 và dán vào ô C1.

   If AnswerYes = vbYes Then Range ("A1: A2"). Copy Range ("C1")

Nếu phản hồi được đưa ra bởi hộp thông báo là Không thì nó sẽ sao chép phạm vi A1 sang A2 và dán vào ô E1.

 Phạm vi khác ("A1: A2"). Phạm vi sao chép ("E1") Kết thúc nếu 

Được rồi, tôi đã nhập một vài giá trị vào ô A1 và A2 bây giờ.

Bây giờ tôi sẽ chạy mã bằng phím F5 hoặc thông qua tùy chọn chạy, một hộp thông báo sẽ xuất hiện trước mặt tôi và yêu cầu phản hồi của tôi.

Nếu tôi nhấp vào Có, nó sẽ sao chép phạm vi A1 sang A2 và dán vào ô C1. Bây giờ tôi sẽ bấm vào Yes và xem kết quả.

Vì vậy, nó đã thực hiện nhiệm vụ được giao nếu phản hồi là CÓ.

Bây giờ một lần nữa tôi sẽ chạy mã.

Lần này tôi sẽ chọn Không và xem điều gì sẽ xảy ra.

Có nó đã thực hiện nhiệm vụ được giao trong mã tức là

 Phạm vi khác ("A1: A2"). Phạm vi sao chép ("E1")

Ví dụ # 2 - Ẩn & Hiện Trang tính Dựa trên Phản hồi

Mã bên dưới sẽ ẩn tất cả các trang tính ngoại trừ trang tính đang hoạt động nếu phản hồi là có.

Mã:

 Sub HideAll () Dim Answer As String Dim Ws As Worksheet Answer = MsgBox ("Bạn có muốn ẩn tất cả không?", VbQuestion + vbYesNo, "Hide") If Answer = vbYes Then For Each Ws In ActiveWorkbook.Worksheets If Ws.Name ActiveSheet.Name Then Ws.Vosystem = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Sau đó MsgBox "Bạn đã chọn không ẩn trang tính", vbInformation, "Không Ẩn" Kết thúc Nếu Kết thúc Sub 

Đoạn mã trên sẽ ẩn tất cả các trang tính ngoại trừ trang tính mà chúng ta đang ở ngay bây giờ nếu phản hồi từ hộp thông báo là CÓ.

Nếu phản hồi từ hộp thông báo là KHÔNG, nó sẽ hiển thị hộp thông báo cho biết “Bạn đã chọn không ẩn trang tính”.

Tương tự, mã bên dưới sẽ hiện trang tính nếu phản hồi là Có.

Mã:

 Sub UnHideAll () Dim Answer As String Dim Ws As Worksheet Đáp án = MsgBox ("Bạn có muốn Bỏ ẩn tất cả không?", VbQuestion + vbYesNo, "Ẩn") If Answer = vbYes Then For Each Ws In ActiveWorkbook.Worksheets Ws.Vible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Sau đó MsgBox "Bạn đã chọn không Bỏ ẩn trang tính", vbInformation, "Không Ẩn" Kết thúc Nếu Kết thúc Sub 

Điều này hoạt động giống hệt như ẩn mã trang tính, nếu có, nó sẽ hiện, nếu không, nó sẽ không ẩn.


$config[zx-auto] not found$config[zx-overlay] not found