Page 1 of 1

วิธีเขียนสูตร สร้าง sheet และใส่ข้อมูลตาม ตาราง

Posted: Sun Feb 24, 2019 1:14 pm
by TanabadeeY
อยากเขียนสูตร VBA ให้สร้าง sheets ที่ที่หน้าตาเหมือน sheets "table" เรื่อยๆตามข้อมูลใน sheets "database"

และเอาข้อมูลจาก Sheets"database" ตามหัวข้อ A B C D ไปใส่แต่ละ cell ที่สร้างขึ้นใหม่ เรื่อยๆ

สรุป จะได้ 6 sheets ที่แต่ละ sheets จะมีชื่อตาม Contract No.

(ข้อมูลของจริงใน sheets "database" จะมีหลายพันบรรทัด นะครับ)

ไฟล์ตัวอย่างผมลองทำตัวอย่างมา 1 sheets นะครับ
ขอบคุณครับ

Re: วิธีเขียนสูตร สร้าง sheet และใส่ข้อมูลตาม ตาราง

Posted: Sun Feb 24, 2019 1:47 pm
by logic
แนบโค้ดที่เขียนมาแล้วในไฟล์ด้วยนะครับ ไฟล์ที่ลงท้ายด้วย .xlsx จะไม่ติดโค้ดมาด้วย ต้องเป็น .xlsm ครับ :)

Re: วิธีเขียนสูตร สร้าง sheet และใส่ข้อมูลตาม ตาราง

Posted: Sun Feb 24, 2019 1:54 pm
by TanabadeeY
logic wrote: Sun Feb 24, 2019 1:47 pm แนบโค้ดที่เขียนมาแล้วในไฟล์ด้วยนะครับ ไฟล์ที่ลงท้ายด้วย .xlsx จะไม่ติดโค้ดมาด้วย ต้องเป็น .xlsm ครับ :)
ขอโทษครับ ยังไม่เคยเขียน code แนวนี้เลยครับ เริ่มไม่ถูกเลยครับ

Re: วิธีเขียนสูตร สร้าง sheet และใส่ข้อมูลตาม ตาราง

Posted: Sun Feb 24, 2019 2:37 pm
by logic
:P มีกฎของบอร์ด (ข้อ 5) ว่าให้ผู้ถามเขียนมาก่อนครับ :aru: :|

Re: วิธีเขียนสูตร สร้าง sheet และใส่ข้อมูลตาม ตาราง

Posted: Sun Feb 24, 2019 2:54 pm
by TanabadeeY
logic wrote: Sun Feb 24, 2019 2:37 pm :P มีกฎของบอร์ด (ข้อ 5) ว่าให้ผู้ถามเขียนมาก่อนครับ :aru: :|
ปกติผมจะหาวิธีก่อน แต่พอดีเคสนี้มันเร่งมากเลยครับ ถ้ายังไงพอจะมีเคสคล้ายๆกันให้ดูเป็นตัวอย่างมั้ยครับ

Re: วิธีเขียนสูตร สร้าง sheet และใส่ข้อมูลตาม ตาราง

Posted: Sun Feb 24, 2019 3:10 pm
by logic
TanabadeeY wrote: Sun Feb 24, 2019 2:54 pm พอจะมีเคสคล้ายๆกันให้ดูเป็นตัวอย่างมั้ยครับ
ข้อ 44 ในลิ้งก์นี้อาจารย์สอนโค้ดแยกข้อมูลออกเป็นหลายชีต ลองดูครับ ~~> viewtopic.php?f=9&t=14822 ;)

Re: วิธีเขียนสูตร สร้าง sheet และใส่ข้อมูลตาม ตาราง

Posted: Sun Feb 24, 2019 3:37 pm
by TanabadeeY
logic wrote: Sun Feb 24, 2019 3:10 pm
TanabadeeY wrote: Sun Feb 24, 2019 2:54 pm พอจะมีเคสคล้ายๆกันให้ดูเป็นตัวอย่างมั้ยครับ
ข้อ 44 ในลิ้งก์นี้อาจารย์สอนโค้ดแยกข้อมูลออกเป็นหลายชีต ลองดูครับ ~~> viewtopic.php?f=9&t=14822 ;)
ขอบคุณมากครับ

Re: วิธีเขียนสูตร สร้าง sheet และใส่ข้อมูลตาม ตาราง

Posted: Sun Feb 24, 2019 9:27 pm
by TanabadeeY
ลองทำมาแล้วครับ แต่รันแล้ว error ไม่ทราบว่าต้องแก้ยังไงครับ ตอน copy sheets"Table" แล้ว error

Re: วิธีเขียนสูตร สร้าง sheet และใส่ข้อมูลตาม ตาราง

Posted: Sun Feb 24, 2019 10:14 pm
by puriwutpokin
ปรับการสร้างชีทตามนี้ครับ

Code: Select all

Sub test()
    Dim r As Range, d As Object, s As Worksheet, a As Range, b As Range
    Set d = CreateObject("scripting.dictionary")
    With Sheets(1)
        For Each r In .Range("b2", .Range("b" & .Rows.Count).End(xlUp))
        If Not d.exists(r.Value) Then
        d.Add r.Value, r.Value
   Sheets(2).Copy After:=Worksheets(Worksheets.Count)
   Set s = Worksheets(Worksheets.Count)
        Sheets(1).Select
        s.Name = r.Value
        s.Range("f1").Value = "CT"
        s.Range("f2").Value = r.Value
    End If
    Next r
    End With
    Application.DisplayAlerts = True
End Sub

Re: วิธีเขียนสูตร สร้าง sheet และใส่ข้อมูลตาม ตาราง

Posted: Sun Feb 24, 2019 10:31 pm
by TanabadeeY
puriwutpokin wrote: Sun Feb 24, 2019 10:14 pm ปรับการสร้างชีทตามนี้ครับ

Code: Select all

Sub test()
    Dim r As Range, d As Object, s As Worksheet, a As Range, b As Range
    Set d = CreateObject("scripting.dictionary")
    With Sheets(1)
        For Each r In .Range("b2", .Range("b" & .Rows.Count).End(xlUp))
        If Not d.exists(r.Value) Then
        d.Add r.Value, r.Value
   Sheets(2).Copy After:=Worksheets(Worksheets.Count)
   Set s = Worksheets(Worksheets.Count)
        Sheets(1).Select
        s.Name = r.Value
        s.Range("f1").Value = "CT"
        s.Range("f2").Value = r.Value
    End If
    Next r
    End With
    Application.DisplayAlerts = True
End Sub
ขอบคุณมากครับ