
ลิสต์ Item สินค้า ที่ลูกค้าสั่งลงใน Cell เดียว เป็นลักษณะงานที่พบมากใน #การขายสินค้าออนไลน์ และ #งานขนส่งสินค้า (packing list / delivery note / despatch manifest / etc.)
#โจทย์…
ต้องการ ลิสต์ Item สินค้า ที่ลูกค้าสั่งลงใน Cell เดียว โดยให้คั่นด้วยเครื่องหมาย Comma
#แนวทาง…
โจทย์ประเภทนี้ แทบจะเป็นไปไม่ได้ หรือหากต้องการจะใช้สูตร Excel จริง ๆ จะต้องออกแบบสูตรที่ค่อยข้างซับซ้อน และยาวมาก ๆ งานลักษณะนี้ การใช้ VBA จะเป็นเรื่องที่ง่ายกว่ามากเขียนโค้ดเพียง 5-6 บรรทัดเท่านั้น
#ขั้นตอนในการเขียนโค้ด
1) ประกาศตัวแปร 2 ค่าคือ
- 1) ตัวแปร i เพื่อรับค่าบรรทัดของข้อมูลทั้งหมดที่ต้องการ Loop
- 2) ตัวแปร myTargetRow เพื่อรับค่าตำแหน่งบรรทัดของรายชื่อลูกค้า ที่ต้องเอา Item Code ไปวาง
2) Loop ไปที่รายชื่อ แล้ว ใช้ Function match เพื่อหาตำแหน่งบรรทัดที่ต้องเอา item Code ไปวาง
3) ในการวางค่าให้เริ่มด้วย รายการ item Code เดิมที่อยู่ในตำแหน่งนั้น แล้วเชื่อมด้วย & แล้วตามด้วย Comma แล้วจึงตามด้วย รายการ Item Code
4) และเพื่อตัด Comma ที่อยู่หน้าสุด ในทุก ๆ รอบของการการ Loop ให้เช็คว่า ตัวอักษรแรกใน Cell ที่วางค่าขึ้นต้นด้วย Comma หรือไม่ ถ้าใช่ ให้ตัด Comma ออกด้วยสูตร mid
#โค้ดที่ได้ก็จะเป็นแบบนี้ ….
Sub listItem()
Dim i As Long, myTargetRow As Long
For i = 3 To 18
myTargetRow = WorksheetFunction.Match(Range(“C” & i).Value, Range(“G:G”), 0)
Range(“H” & myTargetRow).Value = Range(“H” & myTargetRow).Value & “,” & Range(“B” & i).Value
If Left(Range(“H” & myTargetRow), 1) = “,” Then
Range(“H” & myTargetRow).Value = Mid(Range(“H” & myTargetRow).Value, 2, 100)
End If
Next i
End Sub
ก็จะเป็นอันเรียบร้อย
ขอให้สนุกกับการเรียน และใช้งาน Excel VBA กันทุกคนครับ
ใครมีคำถามอะไรเกี่ยวกับ Excel หรือ VBA ก็ลองถามเข้ามาดูกันครับ จะเอามาเฉลยให้ฟังกัน
———-//———-
#สำหรับผู้ที่สนใจเรียนVBAกับผม
– ทั้งสำหรับผู้ที่จริงจัง อยากเรียน VBA เพื่อเอาไปใช้งาน
– หรือ คุณเป็นคนที่อยากหนีตายเพราะเบื่องาน Excel แบบถึก ๆ หรือ เป็นคนที่มุ่งมั่น อยากพัฒนา ยกระดับความสามารถ ขีดมาตรฐานใหม่ให้กับงานของตัวเอง
ทักมาที่ m.me/excelbypichart หรือ โทร. 099-084-2562
————//————
อ.ชาติ
Learn Excel With Pichart
Smart Excel For Better LIFE