Excel VBA: ถ้าเซลล์มีค่าให้ส่งคืนเอาต์พุตที่ระบุ

  • แบ่งปันสิ่งนี้
Hugh West

ในบทความนี้ ฉันจะแสดงวิธีวิเคราะห์สถานการณ์ใน Excel VBA หากเซลล์มีค่า คุณจะได้เรียนรู้การวิเคราะห์สถานการณ์สำหรับทั้งค่าใดๆ และค่าเฉพาะ

การวิเคราะห์ Excel VBA: ถ้าเซลล์มีค่า ดังนั้น (มุมมองด่วน)

8262

ดาวน์โหลดสมุดงานแบบฝึกหัด

ดาวน์โหลดแบบฝึกหัดแบบฝึกหัดนี้เพื่อทำแบบฝึกหัดขณะที่คุณกำลังอ่านบทความนี้

VBA ถ้าเซลล์มีค่าแล้ว.xlsm

<4 การวิเคราะห์ Excel VBA: หากเซลล์มีค่า จากนั้นส่งคืนผลลัพธ์ (การวิเคราะห์ทีละขั้นตอน)

ที่นี่ เรามีชุดข้อมูลที่มีคะแนนของนักเรียนบางคนในสาขาฟิสิกส์ เคมี และวิชาคณิตศาสตร์ในโรงเรียนที่ชื่อว่าโรงเรียนอนุบาลทานตะวัน

เซลล์ว่างหมายความว่านักเรียนไม่ปรากฏตัว กล่าวคือขาดเรียนในการสอบนั้นๆ ตอนนี้มาวิเคราะห์สถานการณ์ว่าเซลล์มีค่าหรือไม่ด้วยชุดข้อมูลนี้

⧪ ขั้นตอนที่ 1: การประกาศเซลล์

ก่อนอื่น เราต้อง ประกาศเซลล์ที่มีค่าที่เราต้องการวิเคราะห์ มาวิเคราะห์กันว่า Jennifer Marlo ปรากฏตัวในข้อสอบฟิสิกส์หรือไม่

ดังนั้น เราจำเป็นต้องตรวจสอบว่าเซลล์ C12 มีค่าหรือไม่

ในการทำเช่นนั้น ก่อนอื่น เราต้องประกาศเซลล์ C12 .

บรรทัดของโค้ดที่จะทำสิ่งนี้ให้สำเร็จจะเป็น:

9007

⧪ ขั้นตอนที่ 2: ตรวจสอบว่าเซลล์มี ค่า (รวมถึงค่าเฉพาะ)

ต่อไป เราต้องตรวจสอบว่าเซลล์มีค่าหรือไม่ เราจะดำเนินการโดยใช้ เงื่อนไขถ้า บรรทัดของโค้ดจะเป็น:

5270

โค้ดนี้จะถูกดำเนินการหากเซลล์มีค่าใดๆ หากต้องการตรวจสอบค่า (เช่น มี 100 หรือไม่) ให้ใช้ค่าที่ระบุโดยมีสัญลักษณ์ เท่ากับ

8031

⧪ ขั้นตอนที่ 3: จัดสรรงาน

จากนั้นคุณต้องตั้งค่างานที่จะดำเนินการหากเซลล์มีค่า (หรือค่าเฉพาะ)

ที่นี่ เราต้องการแสดงข้อความ “เจนนิเฟอร์ มาร์โล ปรากฏตัวในการสอบฟิสิกส์” ดังนั้นบรรทัดของโค้ดจะเป็น:

8737

⧪ ขั้นตอนที่ 4: การสิ้นสุดบล็อก If

สุดท้าย คุณต้องประกาศการสิ้นสุดบล็อก If

3390

ดังนั้นโค้ด VBA ที่สมบูรณ์จะเป็น:

⧭ รหัส VBA:

7841

<0 ⧭ เอาต์พุต:

รันโค้ดนี้โดยคลิกปุ่ม เรียกใช้ Sub/UserForm บนแถบเครื่องมือ

จะแสดงข้อความ “เจนนิเฟอร์ มาร์โล ปรากฏตัวในการสอบฟิสิกส์” เนื่องจากเซลล์ C12 มีค่า 50 .

ตัวอย่างที่เกี่ยวข้องหากเซลล์มีค่า จากนั้นเอาต์พุตที่ระบุด้วย Excel VBA

เราได้เรียนรู้วิธีวิเคราะห์ว่าเซลล์มีค่าหรือ ไม่ได้อยู่ใน VBA ตอนนี้ มาดูตัวอย่างบางส่วนเพื่อทำความเข้าใจให้ชัดเจน

1. การพัฒนามาโครเพื่อกรองค่าหากเซลล์ที่เกี่ยวข้องมีค่าใด ๆ ดังนั้นใน Excel VBA

มาพัฒนา มาโคร เพื่อกรองนักเรียนที่ปรากฏในข้อสอบแต่ละข้อออก

นั่นคือเราต้องตรวจสอบเซลล์ที่มีเครื่องหมายของแต่ละวิชาและดูว่ามีค่าหรือไม่ หรือไม่

ถ้าเป็นเช่นนั้น เราจะต้องคัดแยกชื่อของนักเรียนที่เกี่ยวข้อง

รหัส VBA ที่สมบูรณ์เพื่อดำเนินการนี้จะเป็น:<3

⧭ รหัส VBA:

7681

⧭ เอาต์พุต:

เลือกชุดข้อมูล ( รวมทั้ง ส่วนหัว ) และเรียกใช้ มาโคร

ก่อนอื่น ระบบจะขอให้คุณป้อนข้อมูลอ้างอิงของส่วนแรก เซลล์ที่คุณต้องการกรองข้อมูล ฉันได้ป้อน G3 แล้ว

จากนั้นคลิก ตกลง คุณจะได้รับชื่อของนักเรียนที่ปรากฏในการสอบแต่ละครั้ง (รวมถึง ส่วนหัว ) ในชุดข้อมูลใหม่ที่เริ่มต้นจากเซลล์ G3

2. การสร้างฟังก์ชันที่ผู้ใช้กำหนดเองเพื่อจัดเรียงค่า หากเซลล์ที่เกี่ยวข้องมีค่าเฉพาะ จากนั้นใน Excel VBA

ตอนนี้เราจะสร้างฟังก์ชันที่ผู้ใช้กำหนดเองซึ่งจะส่งกลับชื่อของนักเรียน ที่ได้คะแนนเฉพาะในแต่ละวิชา

ขั้นตอนเกือบจะเหมือนกับข้างต้น เราต้องตรวจสอบเซลล์ที่มีเครื่องหมายของแต่ละวิชาและดูว่ามีค่าเท่ากับค่าที่ระบุหรือไม่

หากเป็นเช่นนั้น เราจะส่งคืนชื่อของนักเรียนที่เกี่ยวข้อง

โค้ด VBA จะเป็น:

⧭ VBAรหัส:

9812

⧭ เอาต์พุต:

รหัสสร้างฟังก์ชันที่เรียกว่า เซลล์_พร้อม_ค่า ที่ ใช้สองอาร์กิวเมนต์ ช่วง และ ค่า

ลองหานักเรียนที่ได้ 100 ในแต่ละวิชาโดยใช้ฟังก์ชันนี้

เลือกช่วงของเซลล์ในเวิร์กชีตของคุณและป้อนฟังก์ชันนี้ในเซลล์แรกของช่วง:

=Cells_with_Values(B3:E13,100)

[ที่นี่ B3: E3 คือชุดข้อมูลของฉัน (รวมถึง ส่วนหัว ) และ 100 คือค่าที่ตรงกันของฉัน คุณใช้ของคุณ]

จากนั้นกด CTRL + SHIFT + ENTER ( สูตรอาร์เรย์ ) มันจะส่งคืนอาร์เรย์ที่ประกอบด้วยชื่อของนักเรียนที่ได้ 100 ในแต่ละวิชา รวมถึง ส่วนหัว ด้วย

3 การพัฒนา UserForm เพื่อดึงค่าออกมาหากเซลล์ที่เกี่ยวข้องมีค่าใดๆ (หรือค่าเฉพาะ) ใน Excel VBA

สุดท้าย เราจะพัฒนา UserForm เพื่อแยก ชื่อของนักเรียนที่ปรากฏตัว (หรือได้คะแนนเฉพาะ) ในการสอบบางรายการ

⧪ ขั้นตอนที่ 1: การเปิดแบบฟอร์มผู้ใช้

ไปที่ แทรก > ตัวเลือก UserForm ในตัวแก้ไข VBA เพื่อเปิด UserForm ใหม่ UserForm ใหม่ที่เรียกว่า UserForm1 จะเปิดขึ้น

⧪ ขั้นตอนที่ 2: การลากเครื่องมือไปที่ UserForm<2

นอกจาก ฟอร์มผู้ใช้ แล้ว คุณจะได้รับ กล่องเครื่องมือ เลื่อนเคอร์เซอร์ไปที่ Toolbox แล้วลาก 4 Labels (Label1, Label2,Label3, Label4) และ 3 ListBoxes (ListBox1, ListBox2, ListBox3) และ TextBox (TextBox1) ในรูปทรงสี่เหลี่ยมผืนผ้าเหนือ UserForm .

จากนั้นลากอีก ป้ายกำกับ (Label5) และ TextBox (TextBox2) ไปที่มุมล่างซ้ายของ UserForm .

สุดท้าย ลาก ปุ่มคำสั่ง (CommandButton1) ไปที่มุมล่างขวา

เปลี่ยนการแสดงผลของ ป้ายชื่อ เป็น คอลัมน์ค้นหา , ส่งคืนคอลัมน์ , ค่าใดๆ หรือค่าเฉพาะ , ค่า, และ เซลล์เริ่มต้น

นอกจากนี้ เปลี่ยนการแสดงผลของ CommandButton1 เป็น ตกลง .

⧪ ขั้นตอนที่ 3: การเขียนโค้ดสำหรับ ListBox3

ดับเบิลคลิกที่ ListBox3 ขั้นตอนย่อยส่วนตัว ที่เรียกว่า ListBox3_Click จะเปิดขึ้น ป้อนโค้ดต่อไปนี้

9202

⧪ ขั้นตอนที่ 4: การเขียนโค้ดสำหรับ CommandButton1

จากนั้นดับเบิลคลิกที่ CommandButton1 . อีก ขั้นตอนย่อยส่วนตัว ที่เรียกว่า CommandButton1_Click จะเปิดขึ้น ป้อนรหัสต่อไปนี้ที่นั่น

4827

⧪ ขั้นตอนที่ 5: การเขียนรหัสสำหรับการเรียกใช้ UserForm

สุดท้าย แทรก โมดูล ใหม่จาก แถบเครื่องมือ VBA และแทรกโค้ดต่อไปนี้ที่นั่น

8152

⧪ ขั้นตอนที่ 6: การเรียกใช้ UserForm (ผลลัพธ์สุดท้าย) <3

ขณะนี้ ฟอร์มผู้ใช้ ของคุณพร้อมใช้งานแล้ว เลือกชุดข้อมูลจากแผ่นงาน ( B3:E13 ที่นี่) (รวมถึง ส่วนหัว ) และเรียกใช้ แมโคร ที่เรียกว่า Run_UserForm .

จะมีการโหลด UserForm ในแผ่นงาน จากตาราง คอลัมน์ค้นหา ฉันเลือก ฟิสิกส์ และ คณิตศาสตร์ เพราะฉันต้องการทราบชื่อนักเรียนที่ปรากฏใน ฟิสิกส์ และ คณิตศาสตร์ ข้อสอบ

จากตาราง คอลัมน์ย้อนกลับ ฉันเลือก ชื่อนักเรียน เนื่องจากฉันต้องการรับชื่อนักเรียน

และจากตาราง ค่าใดๆ หรือค่าเฉพาะ ฉันได้เลือก ค่าใดๆ

สุดท้าย ใน เซลล์เริ่มต้น กล่อง ฉันใส่ G3 แล้ว

จากนั้นคลิก ตกลง คุณจะได้รับชื่อของนักเรียนที่ปรากฏในข้อสอบ ฟิสิกส์ และ คณิตศาสตร์ โดยเริ่มจากเซลล์ G3

หากคุณเลือก ค่าเฉพาะ จากตาราง ค่าใดๆ หรือค่าเฉพาะ คุณจะมี กล่องข้อความ อีกชุดหนึ่งเพื่อป้อนค่าเฉพาะ

ที่นี่ฉันได้ป้อน 100 .

คลิก ตกลง และคุณจะได้นักเรียนที่ได้ 100 ใน ฟิสิกส์ และ เคมี

สิ่งที่ต้องจำ

เราใช้อาร์เรย์สองมิติเพื่อส่งคืนชื่อนักเรียนใน ฟังก์ชันที่กำหนดโดยผู้ใช้ ตามที่อธิบายไว้ในตัวอย่าง 2 .

Hugh West เป็นผู้ฝึกอบรมและนักวิเคราะห์ Excel ที่มีประสบการณ์สูงและมีประสบการณ์มากกว่า 10 ปีในอุตสาหกรรมนี้ เขาสำเร็จการศึกษาระดับปริญญาตรีสาขาการบัญชีและการเงิน และปริญญาโทสาขาบริหารธุรกิจ Hugh มีความหลงใหลในการสอนและได้พัฒนาแนวทางการสอนที่เป็นเอกลักษณ์ซึ่งง่ายต่อการติดตามและเข้าใจ ความรู้ความเชี่ยวชาญของเขาเกี่ยวกับ Excel ช่วยให้นักเรียนและผู้เชี่ยวชาญหลายพันคนทั่วโลกพัฒนาทักษะและความเป็นเลิศในอาชีพการงาน ฮิวจ์แบ่งปันความรู้ของเขากับคนทั้งโลกผ่านบล็อก โดยเสนอบทช่วยสอน Excel ฟรีและการฝึกอบรมออนไลน์เพื่อช่วยให้บุคคลและธุรกิจบรรลุศักยภาพสูงสุดของตนเอง