บทความนี้มีจุดประสงค์เพื่อสร้างความเข้าใจและแสดงตัวอย่างการใช้งาน nested loop ในภาษา VBA ของ Microsoft Excel ซึ่งเป็นเครื่องมือที่ทรงพลังสำหรับการจัดการข้อมูลและการทำงานซ้ำๆ ในแบบอัตโนมัติ ผ่านทาง Excel Macros หรือ VBA (Visual Basic for Applications) Code ทุกตัวอย่างที่จะกล่าวจะช่วยเพิ่มความเข้าใจและยังสามารถนำไปประยุกต์ในงานจริงได้อีกด้วย
Loop หรือ ลูป, เป็นโครงสร้างการควบคุมที่ใช้ในการเขียนโปรแกรมเพื่อทำซ้ำการทำงานหนึ่งๆ หลายครั้ง Nested loop คือ การใส่ loop ภายในอีก loop หนึ่ง ซึ่งเทคนิคนี้ใช้ประโยชน์กับงานที่ต้องการการทำซ้ำหลายมิติ เช่น การทำงานกับข้อมูลในรูปแบบของตารางหรือเมทริกซ์
Sub NestedLoopExample1()
Dim i As Integer, j As Integer
' กำหนดช่วงการทำงานของแต่ละ loop
For i = 1 To 5
For j = 1 To 5
' กระจายค่า i * j ไปยังเซลล์ที่กำหนด
Cells(i, j).Value = i * j
Next j
Next i
End Sub
การทำงานของโค้ด: โค้ดด้านบนจะทำการคูณค่าระหว่าง `i` และ `j` และจะวางผลลัพธ์ไปยังเซลล์ที่ตรงกับลำดับใน Excel Sheet โดยที่ `i` คือลำดับแถวและ `j` คือลำดับคอลัมน์ เมื่อนำมาคูณกันจะได้ตารางคูณที่กระจายอยู่ในเซลล์ต่างๆ
Sub NestedLoopExample2()
Dim i As Integer, j As Integer
Dim lastRow As Integer, lastColumn As Integer
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
lastColumn = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To lastRow
For j = 1 To lastColumn
If Cells(i, j).Value = "EPT" Then
MsgBox "Found EPT at " & i & "," & j
Exit Sub
End If
Next j
Next i
End Sub
การทำงานของโค้ด: โค้ดนี้จะเริ่มต้นด้วยการกำหนดช่วงของข้อมูลด้วยการหาแถวสุดท้ายและคอลัมน์สุดท้ายที่มีข้อมูล จากนั้นจะใช้ nested loop เพื่อวนหาค่า "EPT" ในช่วงข้อมูลนั้นๆ หากพบข้อมูลที่ตรงกับเงื่อนไขจะแสดงข้อความบอกตำแหน่งที่พบ
Sub NestedLoopExample3()
Dim mainCategory As Variant
Dim subCategory As Variant
Dim i As Integer, j As Integer
mainCategory = Array("Fruits", "Vegetables", "Grains")
subCategory = Array(Array("Apple", "Banana", "Cherry"), Array("Carrot", "Broccoli", "Cucumber"), Array("Rice", "Wheat", "Corn"))
i = 1
For Each mainElement In mainCategory
Cells(i, 1).Value = mainElement
For Each subElement In subCategory(i - 1)
j = j + 1
Cells(i, j + 1).Value = subElement
Next subElement
i = i + 1
j = 1
Next mainElement
End Sub
การทำงานของโค้ด: ในโค้ดนี้เรามีการกำหนดชนิดของสินค้าหลัก (mainCategory) และสินค้าย่อย(subCategory) โดยใช้ array ของ arrays เราจะใช้ nested loops เพื่อวนหลักและย่อยเพื่อใส่ข้อมูลไปยังเซลล์ใน Excel Sheet โดยข้อมูลหลักจะอยู่ในคอลัมน์แรกและข้อมูลย่อยจะถูกเพิ่มในคอลัมน์ถัดไป
Nested loop มีประโยชน์อย่างมากในการจัดการกับ การทำ data analysis, การจัดสรรงานคำนวณในโปรเจกต์วิศวกรรม, การควบคุมกระบวนการผลิตในโรงงาน, หรือการจัดการกับ inventory สินค้าในระบบสต็อก พวกเขาช่วยให้เราสามารถจัดระเบียบข้อมูล, ค้นพบแพทเทิร์นหรือแม้แต่ระบุปัญหาภายในชุดข้อมูลขนาดใหญ่
ศูนย์การเรียนรู้ EPT พร้อมต้อนรับนักเรียนทุกคนที่ต้องการพัฒนาทักษะการเขียนโปรแกรมของตัวเอง ไม่ว่าจะเป็นการเข้าใจคอนเซ็ปต์พื้นฐาน, การประยุกต์ใช้ในโปรเจกต์จริง, หรือการสร้างอัตโนมัติในงานประจำโดยใช้ภาษา VBA มาเริ่มต้นการเดินทางทางการเขียนโปรแกรมกับเราและเปิดโอกาสให้ตัวคุณเข้าสู่โลกของการพัฒนาซอฟต์แวร์ ฝ่ายความรู้และความสามารถคือกุญแจสำคัญที่จะปลดล็อคศักยภาพของคุณ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: vba nested_loop loop excel_macros programming data_analysis engineering automation inventory_management coding_skills
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM