Mục lục:
- Ví dụ về trường hợp lựa chọn
- Như đã trình bày trong ví dụ sau, bạn có thể chọn các cấu trúc Chọn trường hợp. Thủ tục này kiểm tra ô hoạt động và hiển thị thông báo mô tả nội dung của ô. Chú ý rằng thủ tục này có ba cấu trúc Select Case, và mỗi lệnh có một câu lệnh End Select riêng:
Video: Cách dùng Consolidate gộp dữ liệu trùng nhau trong Excel 2025
Cấu trúc Case chọn là một cấu trúc VBA hữu ích cho các quyết định liên quan đến ba hoặc nhiều hơn trong Excel 2016 (mặc dù nó cũng làm việc với hai lựa chọn, cung cấp một thay thế cho cấu trúc If-Then-Else).
Ví dụ về trường hợp lựa chọn
Ví dụ dưới đây chỉ ra cách sử dụng cấu trúc Chọn trường hợp:
Sub ShowDiscount3 () Dim Quantity Như Long Dim Giảm Là Double Quantity = InputBox ("Enter Quantity:") Chọn Case Quantity Trường hợp 0 đến 24 Giảm = 0. 1 trường hợp 25 đến 49 Giảm = 0. 15 Trường hợp 50 đến 74 Giảm giá = 0. 2 Trường hợp là> = 75 Giảm giá = 0. 25 Cuối cùng Chọn MsgBox "Giảm giá:" và Giảm Cuối Sub > Trong ví dụ này, biến Số lượng đang được đánh giá. Kiểm tra thường lệ cho bốn trường hợp khác nhau (0-24, 25-49, 50-74, và 75 trở lên).
Sub ShowDiscount4 () Dim Số lượng Giảm giá dài Như Số lượng đôi = InputBox ("Enter Quantity:") Chọn Case Số lượng Case 0 đến 24: Discount = 0. 1 Case 25 To 49: Giảm = 0. 15 Trường hợp 50 đến 74: Giảm giá = 0. 2 Trường hợp là> = 75: Giảm giá = 0. 25 Cuối Chọn MsgBox "Discount:" và Giảm End Sub
Khi VBA thực hiện một cấu trúc Case chọn, cấu trúc được thoát ngay khi VBA tìm thấy một trường hợp thực sự và thực hiện các tuyên bố cho trường hợp đó.
Như đã trình bày trong ví dụ sau, bạn có thể chọn các cấu trúc Chọn trường hợp. Thủ tục này kiểm tra ô hoạt động và hiển thị thông báo mô tả nội dung của ô. Chú ý rằng thủ tục này có ba cấu trúc Select Case, và mỗi lệnh có một câu lệnh End Select riêng:
Sub CheckCell () Dim Msg Như String Select Case IsEmpty (ActiveCell) Trường hợp True Msg = "trống. "Case Else Chọn trường hợp ActiveCell. HasFormula Case True Msg = "có một công thức" trường hợp Case Case khác Trường hợp IsNumeric (ActiveCell) Case True Msg = "có một số" Case Else Msg = "có văn bản" End Chọn End Chọn End Chọn MsgBox "Cell" & ActiveCell. Địa chỉ & "" & Msg End Sub
logic đi một cái gì đó như thế này:
-
Nếu nó không rỗng, xem nó có chứa một công thức hay không.
-
Nếu không có công thức, hãy tìm hiểu xem nó có chứa một giá trị số hay văn bản.
-
Khi thủ tục kết thúc, biến Msg chứa một chuỗi mô tả nội dung của ô. Hàm MsgBox hiển thị thông báo đó.
Một thông báo được hiển thị bởi thủ tục CheckCell.
Bạn có thể chọn cấu trúc Case Chọn sâu như bạn cần nhưng đảm bảo rằng mỗi câu lệnh Select Case đều có một câu lệnh End Select tương ứng.Nếu bạn vẫn không tin rằng mã bắt đầu có giá trị thì nỗ lực đó, danh sách trước đây là một ví dụ điển hình. Các thụt đầu thực sự làm cho mức làm tổ rõ ràng. Hãy nhìn vào cùng một thủ tục mà không có bất kỳ indentation:
Sub CheckCell () Dim Msg Như String Chọn trường hợp IsEmpty (ActiveCell) Trường hợp True Msg = "là trống. "Case Else Chọn trường hợp ActiveCell. HasFormula Case True Msg = "có một công thức" trường hợp Case Case khác Trường hợp IsNumeric (ActiveCell) Case True Msg = "có một số" Case Else Msg = "có văn bản" End Chọn End Chọn End Chọn MsgBox "Cell" & ActiveCell. Địa chỉ & "" & Msg End Sub
Khá hiểu, eh?