Excel VBA: Nếu ô chứa giá trị thì trả về một đầu ra được chỉ định

  • Chia Sẻ Cái Này
Hugh West

Trong bài viết này, tôi sẽ chỉ cho bạn cách bạn có thể phân tích tình huống trong Excel VBA nếu một ô chứa giá trị. Bạn sẽ học cách phân tích tình huống cho cả giá trị bất kỳ và giá trị cụ thể.

Phân tích Excel VBA: Nếu ô chứa giá trị thì (Xem nhanh)

2682

Tải xuống sổ tay thực hành

Tải xuống sách bài tập thực hành này để thực hành khi bạn đang đọc bài viết này.

VBA If Cell Chứa Giá trị Then.xlsm

Phân tích Excel VBA: Nếu ô chứa giá trị thì trả về kết quả đầu ra (Phân tích từng bước)

Ở đây chúng tôi có một bộ dữ liệu gồm điểm của một số học sinh môn Vật lý, Hóa học, và môn Toán ở trường mầm non Hoa Hướng Dương.

Các ô trống có nghĩa là học sinh đó không xuất hiện, tức là vắng mặt trong kỳ thi cụ thể đó. Bây giờ chúng ta hãy phân tích tình huống, liệu một ô có chứa giá trị hay không, với tập dữ liệu này.

⧪ Bước 1: Khai báo ô

Đầu tiên, chúng ta phải khai báo ô có giá trị mà chúng ta muốn phân tích. Hãy phân tích xem Jennifer Marlo có xuất hiện trong đề thi Vật lý hay không.

Vì vậy, chúng ta cần kiểm tra xem ô C12 có chứa giá trị hay không.

Để làm được điều đó, trước tiên, chúng ta phải khai báo ô C12 .

Dòng mã để thực hiện điều này sẽ là:

9752

⧪ Bước 2: Kiểm tra xem ô có chứa một Giá trị (Bao gồm một Giá trị cụ thể)

Tiếp theo, chúng tôi phải kiểm tra xemô có chứa giá trị hay không. Chúng tôi sẽ thực hiện điều này bằng cách sử dụng Điều kiện nếu . Dòng  mã sẽ là:

1717

Mã này sẽ được thực thi nếu ô chứa bất kỳ giá trị nào. Để kiểm tra một giá trị (Ví dụ: giá trị đó có chứa 100 hay không), hãy sử dụng giá trị cụ thể đó cùng với ký hiệu Bằng .

4281

⧪ Bước 3: Giao nhiệm vụ

Sau đó, bạn phải thiết lập một tác vụ sẽ được thực thi nếu ô chứa một giá trị (hoặc một giá trị cụ thể).

Ở đây, chúng tôi muốn hiển thị thông báo “Jennifer Marlo xuất hiện trong kỳ thi Vật lý.” . Vậy dòng mã sẽ là:

7837

⧪ Bước 4: Kết thúc khối If

Cuối cùng, bạn phải tuyên bố kết thúc khối If.

2954

Vậy mã VBA hoàn chỉnh sẽ là:

⧭ Mã VBA:

2306

⧭ Đầu ra:

Chạy mã này bằng cách nhấp vào nút Chạy Sub/UserForm trên thanh công cụ.

Nó sẽ hiển thị thông báo “Jennifer Marlo đã xuất hiện trong bài kiểm tra Vật lý.” khi ô C12 chứa một giá trị, là 50 .

Các ví dụ liên quan đến việc nếu ô chứa giá trị thì đầu ra được chỉ định với Excel VBA

Chúng ta đã học cách phân tích xem một ô có chứa giá trị hay không không phải trong VBA . Bây giờ, hãy khám phá một số ví dụ để hiểu rõ hơn.

1. Phát triển Macro để lọc ra một giá trị Nếu Ô tương ứng chứa bất kỳ Giá trị nào thì trong Excel VBA

Hãy phát triển một Macro Macro để lọc ra những học sinh đã xuất hiện trong mỗi bài kiểm tra.

Tức là chúng ta phải kiểm tra các ô chứa điểm của từng môn học và xem chúng có chứa giá trị không hoặc không.

Nếu có, thì chúng ta phải sắp xếp tên của sinh viên tương ứng.

VBA hoàn chỉnh để thực hiện việc này sẽ là:

⧭ Mã VBA:

8322

⧭ Đầu ra:

Chọn tập dữ liệu ( Bao gồm Tiêu đề ) và chạy Macro này.

Trước tiên, bạn sẽ được yêu cầu nhập tham chiếu của tiêu đề đầu tiên ô nơi bạn muốn dữ liệu được lọc. Tôi đã nhập G3 .

Sau đó nhấp vào OK . Bạn sẽ nhận được tên của những học sinh đã xuất hiện trong mỗi bài kiểm tra (Bao gồm Phần đầu ) trong tập dữ liệu mới bắt đầu từ ô G3 .

2. Tạo một hàm do người dùng xác định để sắp xếp một giá trị Nếu ô tương ứng chứa một giá trị cụ thể thì trong Excel VBA

Bây giờ chúng ta sẽ tạo một hàm do người dùng xác định sẽ trả về tên của các sinh viên người đạt điểm cụ thể trong từng môn học.

Quy trình gần giống như trên. Chúng ta phải kiểm tra các ô chứa điểm của từng môn học và xem liệu chúng có bằng một giá trị cụ thể hay không.

Nếu đúng thì chúng ta sẽ trả về tên của học sinh tương ứng.

VBA sẽ là:

⧭ VBAMã:

5055

⧭ Đầu ra:

Mã tạo một hàm gọi là Cells_with_Values mà nhận hai đối số, Phạm vi Giá trị .

Hãy tìm xem những sinh viên đạt điểm 100 trong mỗi môn học bằng cách sử dụng hàm này.

Chọn một dải ô trong trang tính của bạn và nhập hàm này vào ô đầu tiên của dải:

=Cells_with_Values(B3:E13,100)

[Tại đây B3: E3 là tập dữ liệu của tôi (Bao gồm Tiêu đề ) và 100 là giá trị phù hợp của tôi. Bạn sử dụng cái của bạn.]

Sau đó nhấn CTRL + SHIFT + ENTER ( Công thức mảng ). Nó sẽ trả về một mảng bao gồm tên của những sinh viên đạt 100 điểm trong mỗi môn học, bao gồm Headers .

3. Phát triển UserForm để trích xuất một giá trị nếu ô tương ứng chứa bất kỳ giá trị nào (Hoặc một giá trị cụ thể) trong Excel VBA

Cuối cùng, chúng ta sẽ phát triển một UserForm để trích xuất tên của những sinh viên đã xuất hiện (hoặc đạt điểm cụ thể) trong một số bài kiểm tra cụ thể.

⧪ Bước 1: Mở UserForm

Chuyển đến Chèn > tùy chọn UserForm trong trình chỉnh sửa VBA để mở một UserForm mới. Một UserForm mới được gọi là UserForm1 sẽ được mở.

⧪ Bước 2: Kéo Công cụ vào UserForm

Bên cạnh UserForm , bạn sẽ có Toolbox . Di chuyển con trỏ qua Hộp công cụ và kéo 4 Nhãn (Nhãn1, Nhãn2,Label3, Label4) 3 ListBox (ListBox1, ListBox2, ListBox3) TextBox (TextBox1) ở dạng hình chữ nhật trên UserForm .

Sau đó, kéo Nhãn (Label5) khác và Hộp văn bản (TextBox2) vào góc dưới cùng bên trái của Biểu mẫu người dùng .

Cuối cùng, hãy kéo CommandButton (CommandButton1) vào góc dưới cùng bên phải.

Thay đổi cách hiển thị của Nhãn thành Cột tra cứu , Cột trả về , Giá trị bất kỳ hoặc Giá trị cụ thể , Giá trị, Ô bắt đầu.

Ngoài ra, hãy thay đổi cách hiển thị của CommandButton1 thành OK .

⧪ Bước 3: Viết Code cho ListBox3

Nhấp đúp vào ListBox3 . Một Thủ tục con riêng tư được gọi là ListBox3_Click sẽ mở ra. Nhập đoạn mã sau vào đó.

5318

⧪ Bước 4: Viết mã cho CommandButton1

Sau đó nhấp đúp chuột vào CommandButton1 . Một Thủ tục con riêng tư khác có tên là CommandButton1_Click sẽ mở ra. Nhập đoạn mã sau vào đó.

2362

⧪ Bước 5: Viết mã để chạy Biểu mẫu người dùng

Cuối cùng, chèn một Mô-đun mới từ Thanh công cụ VBA và chèn đoạn mã sau vào đó.

6654

⧪ Bước 6: Chạy UserForm (Kết quả cuối cùng)

UserForm của bạn hiện đã sẵn sàng để sử dụng. Chọn tập dữ liệu từ trang tính ( B3:E13 tại đây) (Bao gồm Tiêu đề ) vàchạy Macro được gọi là Run_UserForm .

UserForm sẽ được tải trong trang tính. Từ bảng Cột tra cứu , tôi đã chọn Vật lý Toán học vì tôi muốn lấy tên học sinh đã xuất hiện trong Vật lý và bài kiểm tra Toán học .

Từ bảng Cột trả về , tôi đã chọn Tên học sinh vì tôi muốn lấy tên học sinh.

Và từ bảng Giá trị bất kỳ hoặc Giá trị cụ thể , tôi đã chọn Giá trị bất kỳ .

Cuối cùng, trong Ô bắt đầu , tôi đã đặt G3 .

Sau đó nhấp vào OK . Bạn sẽ nhận được tên của những sinh viên đã xuất hiện trong các bài kiểm tra Vật lý Toán học bắt đầu từ ô G3 .

Nếu bạn đã chọn Giá trị cụ thể từ bảng Giá trị bất kỳ hoặc Giá trị cụ thể , bạn sẽ có một Hộp văn bản khác để nhập giá trị cụ thể.

Ở đây tôi đã nhập 100 .

Nhấp vào OK . Và bạn sẽ nhận được những học sinh đạt 100 trong Vật lý Hóa học .

Những điều cần nhớ

Chúng tôi đã sử dụng mảng hai chiều để trả về tên sinh viên trong Hàm do người dùng định nghĩa được mô tả trong ví dụ 2 .

Hugh West là một nhà phân tích và huấn luyện viên Excel giàu kinh nghiệm với hơn 10 năm kinh nghiệm trong ngành. Ông có bằng Cử nhân Tài chính Kế toán và bằng Thạc sĩ Quản trị Kinh doanh. Hugh có niềm đam mê giảng dạy và đã phát triển một phương pháp giảng dạy độc đáo, dễ hiểu và dễ theo dõi. Kiến thức chuyên môn về Excel của ông đã giúp hàng nghìn sinh viên và chuyên gia trên toàn thế giới cải thiện kỹ năng và xuất sắc trong sự nghiệp của họ. Thông qua blog của mình, Hugh chia sẻ kiến ​​thức của mình với mọi người, cung cấp các hướng dẫn Excel miễn phí và đào tạo trực tuyến để giúp các cá nhân và doanh nghiệp phát huy hết tiềm năng của họ.