? ข้อมูลที่อยู่ในรูปแบบรายงานและวางข้อมูลอยู่ในคอลัมน์เดียว เมื่อจะนำไปใช้งานต่อจะมีความยุ่งยากลำบาก เพื่อให้สะดวกต่อการใช้งานควรแยกออกมาเป็น 2 คอลัมน์หรือมากกว่า ขึ้นอยู่กับลักษณะของข้อมูล เพื่อที่
จะทำให้เป็น Database เสียก่อน เพื่อความสะดวกหากต้องการนำไปใช้ทำรายงานในรูปแบบที่ต้องการต่อไป
Video ด้านล่างนี้แสดงการนำข้อมูลที่ถูกจัดเก็บเป็นรูปแบบรายงานแต่อยู่ในคอลัมน์เดียว โดย Product จะเยื้องซ้าย ส่วนข้อมูล Quantity ที่เป็นตัวเลขจะเยื้องขวา เราจะนำข้อมูลดังกล่าวแยกออกมาเป็น 2 คอลัมน์ด้วย VBA เพื่อให้แสดงเป็น Database จะได้สะดวกในการนำไปทำรายงานตามต้องการ ตัวอย่าง Code ตามด้านล่างครับ
Sub MakeDatabase() Dim r As Range, t As String Dim arr(999, 1) As Variant, i As Integer With Sheets(1) .Range("c1").CurrentRegion.ClearContents For Each r In .Range("a2", .Range("a" & .Rows.Count).End(xlUp)) If Not IsNumeric(r.Value) Then t = r.Value Else arr(i, 0) = t arr(i, 1) = r.Value i = i + 1 End If Next r .Range("c1:d1").Value = Array("Pd", "Qty") .Range("c2").Resize(i, 2).Value = arr End With End Sub
📹 Video แสดงการนำข้อมูลในคอลัมน์เดียวแยกเป็น 2 คอลัมน์
🧭 Timeline หัวข้อหลัก
- 00:00:13 แนะนำวัตถุประสงค์: แยกข้อมูลจากคอลัมน์เดียวออกเป็น 2 คอลัมน์
- 00:00:41 เปิด VBE และสร้าง Module ใหม่
- 00:00:54 ตั้งชื่อ Procedure ว่า MakeDatabase
- 00:01:09 ประกาศตัวแปร: R, Add, T, String, arr, I
- 00:01:22 เริ่ม Loop ข้อมูลจากเซลล์ A2 เป็นต้นไป
- 00:01:43 เคลียร์ข้อมูลปลายทางที่ C1 และเซลล์ติดกัน
- 00:02:20 Loop ตรวจสอบค่าทีละเซลล์ในคอลัมน์ A
- 00:02:45 ถ้าไม่ใช่ตัวเลข → กำหนดเป็นชื่อสินค้า
- 00:03:20 ถ้าเป็นตัวเลข → กำหนดเป็นจำนวนสินค้า
- 00:03:38 วางหัวคอลัมน์ที่ C1 และ D1: “Product” และ “Qty”
- 00:04:06 วางข้อมูลที่ C2 เป็นต้นไปจากตัวแปร arr
- 00:04:27 ทดสอบการรันโค้ดและตรวจสอบผลลัพธ์
- 00:04:41 สรุปจบคลิป