Cung cấp các tùy chọn trong Macro (Microsoft Excel)
Nếu bạn mới bắt đầu phát triển macro, bạn có thể đang tìm một cách đơn giản để cung cấp một tập hợp các lựa chọn cho người dùng, sau đó thực hiện hành động dựa trên phản hồi của người dùng. Đây là một nhiệm vụ tương đối đơn giản, nếu bạn sử dụng chức năng InputBox cùng với cấu trúc Select Case.
Nhiệm vụ đầu tiên là thiết lập InputBox của bạn để nó hiển thị thông tin cho người dùng. Ví dụ: giả sử bạn có năm tùy chọn và bạn muốn người dùng chọn một tùy chọn từ năm tùy chọn đó. Bạn có thể sử dụng đoạn mã sau để tập hợp năm tùy chọn, mỗi tùy chọn trên một dòng riêng của chúng:
Prompt = "1. This is your first choice" & vbCrLf Prompt = Prompt & "2. This is your second choice" & vbCrLf Prompt = Prompt & "3. This is your third choice" & vbCrLf Prompt = Prompt & "4. This is your fourth choice" & vbCrLf Prompt = Prompt & "5. This is your fifth choice"
Bây giờ bạn có thể sử dụng chuỗi Lời nhắc khi bạn gọi hàm InputBox trong macro của mình. Sau đó, bạn dịch những gì người dùng phản hồi thành một số thể hiện sự lựa chọn của họ từ năm lựa chọn của bạn. Mã để thực hiện việc này như sau:
UserResp = InputBox(Prompt, "The Big Question") UR = Val(UserResp)
Trong ví dụ này, phản hồi từ hàm InputBox được gán cho biến UserResp, biến này phải là một chuỗi. Biến UR, là một số, sau đó được đặt dựa trên giá trị của chuỗi. (Hàm Val trả về giá trị trong một chuỗi.)
Điều duy nhất cần làm là thực hiện một hành động dựa trên số đã được chọn, từ 1 đến 5. Bạn có thể sử dụng cấu trúc Chọn trường hợp để thực hiện việc này.
Chương trình con đầy đủ có thể xuất hiện như sau:
Sub Macro1() Dim Prompt As String Dim UserResp As String Dim UR As Single Prompt = "1. This is your first choice" & vbCrLf Prompt = Prompt & "2. This is your second choice" & vbCrLf Prompt = Prompt & "3. This is your third choice" & vbCrLf Prompt = Prompt & "4. This is your fourth choice" & vbCrLf Prompt = Prompt & "5. This is your fifth choice" UR = 0 While UR < 1 Or UR > 5 UserResp = InputBox(Prompt, "The Big Question") UR = Val(UserResp) Wend Select Case UR Case 1 'Do stuff for choice 1 here Case 2 'Do stuff for choice 2 here Case 3 'Do stuff for choice 3 here Case 4 'Do stuff for choice 4 here Case 5 'Do stuff for choice 5 here End Select End Sub
Lưu ý rằng ví dụ này sử dụng vòng lặp While … Wend xung quanh hàm InputBox. Điều này được thực hiện để đảm bảo rằng người dùng nhập một số từ 1 đến 5. Nếu giá trị đã nhập nằm ngoài phạm vi đó, thì người dùng chỉ cần được hỏi lại.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (11059) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: