Page 1 of 1

ขอความอนุเคราะห์ VBA ในการวางข้อมูลแบบ 1 column ให้จัดเก็บเป็นตาราง

Posted: Thu Nov 14, 2019 9:12 pm
by akekorn
สวัสดีครับเพื่อนสมาชิกทุกท่าน
วันนี้ผมมีปัญหา เกี่ยวกับ การจัดทำข้อมูลที่อยู่ภายใน column เดียว แต่จำเป็นต้องกลับให้เป็นรูปแบบตารางเพื่อนำไปใช้งานด้านอื่น
ผมเริ่มเขียน Vba แต่ติดปัญหาไม่ทราบว่าจะเขียน ให้กลับด้านข้อมูลที่เป็นแนว column ให้เป็นตาราง และเรียงต่อกันลงมาได้อย่างไร
โดยผมได้แนบตัวอย่างที่ต้องการมาด้วย
ในตัวอย่างข่อมูลที่ต้องกลับให้เป็นแบบตารางอยู่ท่ี่sheet1 cell A2:A131 ต้องเลือกทุก 5 บรรทัดเพื่อวางใน cell D:H และวางทีละบรรทัด
ลงมาเรื่อยๆจนข้อมูลถึงบรรทัดสุดท่้าย

ผมขอความอนุเคราะห์ด้วยครับ เพราะจำเป็นต้องรีบส่งงานนี้ คิดมาทั้งวันแต่เขียน ไม่ออกจริงๆครับผม
ขอบคุณครับ

Re: ขอความอนุเคราะห์ VBA ในการวางข้อมูลแบบ 1 column ให้จัดเก็บเป็นตาราง

Posted: Thu Nov 14, 2019 10:43 pm
by puriwutpokin
ตัวอย่างโค้ดครับ

Code: Select all

Sub makedata()
    Dim i&, z&, x&
    i = Cells(Rows.Count, "a").End(xlUp).row
    z = 2: x = 2
    While z <= i
        Range("d" & x).Resize(, 5) = _
            WorksheetFunction.Transpose(Range("a" & z).Resize(5))
        z = z + 5: x = x + 1
    Wend
End Sub

Re: ขอความอนุเคราะห์ VBA ในการวางข้อมูลแบบ 1 column ให้จัดเก็บเป็นตาราง

Posted: Thu Nov 14, 2019 10:51 pm
by akekorn
ขอบคุณมากๆครับผม

Re: ขอความอนุเคราะห์ VBA ในการวางข้อมูลแบบ 1 column ให้จัดเก็บเป็นตาราง

Posted: Thu Nov 14, 2019 10:54 pm
by akekorn
รบกวนถามครับการเขียนแบบนี้เรียกว่าอะไรครับ ไม่เคยเห็น coding ลักษณะนี้ครับ
หากจะศึกษาเพิ่มได้จากที่ไหนครับ
ขอบคุณครับ

Re: ขอความอนุเคราะห์ VBA ในการวางข้อมูลแบบ 1 column ให้จัดเก็บเป็นตาราง

Posted: Thu Nov 14, 2019 10:58 pm
by puriwutpokin
Google เลยครับ มีมากมายครับอยู่ที่เราตั้งคำค้นหาและ จะเข้าใจแกะ และใช้คำสั่งเพื่อปรับเข้ากับของเรา หรือก็ลองศึกษา จากหนังสือเบื้องต้นดูครับ :D

Re: ขอความอนุเคราะห์ VBA ในการวางข้อมูลแบบ 1 column ให้จัดเก็บเป็นตาราง

Posted: Thu Nov 14, 2019 11:00 pm
by akekorn
ครับผมขอบคุณครับ

Re: ขอความอนุเคราะห์ VBA ในการวางข้อมูลแบบ 1 column ให้จัดเก็บเป็นตาราง

Posted: Fri Nov 15, 2019 6:45 am
by snasui
:D แถมอีกแบบเป็นครับ

Code: Select all

Dim k As Long
With Worksheets("Sheet1")
    For k = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row Step 5
        .Cells((k - 2) \ 5 + 2, "d").Resize(1, 5).Value = _
        Application.Transpose(.Cells(k, "a").Resize(5).Value)
    Next k
End With