Page 1 of 1

Macro : รบกวนด้วยครับ รวมข้อมูลใน sheet "1" และ "2" ( อาจมีมากกว่า 2 Sheet) เข้าด้วยกัน

Posted: Fri Sep 13, 2019 9:54 am
by wisitsakbenz
รบกวนสอบถามครับ

อยากรวมข้อมูลใน sheet "1" และ "2" ( อาจมีมากกว่า 2 Sheet) เข้าด้วยกัน โดยไม่นำในส่วนของ Operation booking, Waiting Case, New patient, Total Case ในแต่ละ Sheet มา แต่จะมารวมทีเดียวใน Sheet "Data"

หมายเหตุ : ใน Sheet "Data" insert row ตามข้อมูลที่นำมารวมกันในแต่ละ sheet

ขอบคุณมากครับ

Re: Macro : รบกวนด้วยครับ รวมข้อมูลใน sheet "1" และ "2" ( อาจมีมากกว่า 2 Sheet) เข้าด้วยกัน

Posted: Fri Sep 13, 2019 5:15 pm
by puriwutpokin
ลองปรับเป็น

Code: Select all

Sub CollectData()
    Dim ws As Worksheet
    Dim rTarget As Range
    Dim r, rAll, Lrw As Integer
    Dim Vr, v As Variant
    Application.ScreenUpdating = False
    For Each ws In Worksheets
        If ws.Name <> "Data" Then
            With Sheets("Data")
                Set rTarget = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0)
                 Lrw = .Cells(.Rows.Count, "f").End(xlUp).Row
            End With
            rAll = ws.Range("k" & ws.Rows.Count).End(xlUp).Row
            Vr = Array("Booking", "Waiting", "Mail / New patient")
            For r = 2 To rAll
            For Each v In Vr
               If ws.Cells(r, 11) = v Then
                              ws.Cells(r, 11).Offset(, -10).Resize(, 18).Copy
                 Sheets("Data").Cells(Lrw, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
        End If
        Next v
        Next r
        End If
    Next ws
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub

Re: Macro : รบกวนด้วยครับ รวมข้อมูลใน sheet "1" และ "2" ( อาจมีมากกว่า 2 Sheet) เข้าด้วยกัน

Posted: Fri Sep 13, 2019 9:16 pm
by wisitsakbenz
ข้อมูลมาไม่ครบครับอาจารย์ รบกวนอีกครั้งนะครับ ขอบคุณมากครับ

Re: Macro : รบกวนด้วยครับ รวมข้อมูลใน sheet "1" และ "2" ( อาจมีมากกว่า 2 Sheet) เข้าด้วยกัน

Posted: Fri Sep 13, 2019 9:40 pm
by puriwutpokin
แนบไฟล์ล่าสุดพร้อมโค้ด​ และตรงส่วนไหนที่ขาดหายไปมาดูกันครับ

Re: Macro : รบกวนด้วยครับ รวมข้อมูลใน sheet "1" และ "2" ( อาจมีมากกว่า 2 Sheet) เข้าด้วยกัน

Posted: Sat Sep 14, 2019 9:55 am
by wisitsakbenz
เรียน อาจารย์ ครับ

ผมลอง run แล้ว
ข้อมูล Sheet"A" มี 19 row
ข้อมูล Sheet "B" มี 9 row

Run Macro รวมกันได้แค่ 11 Row ครับ

รบกวนอาจารย์ด้วยครับ ขอบคุณครับ

Re: Macro : รบกวนด้วยครับ รวมข้อมูลใน sheet "1" และ "2" ( อาจมีมากกว่า 2 Sheet) เข้าด้วยกัน

Posted: Sat Sep 14, 2019 10:07 am
by puriwutpokin
wisitsakbenz wrote: Sat Sep 14, 2019 9:55 am เรียน อาจารย์ ครับ

ผมลอง run แล้ว
ข้อมูล Sheet"A" มี 19 row
ข้อมูล Sheet "B" มี 9 row

Run Macro รวมกันได้แค่ 11 Row ครับ

รบกวนอาจารย์ด้วยครับ ขอบคุณครับ
ก็ตามเงื่อนไขที่ต้องการ ให้เอาเฉพาะคำที่ต้องการมาไม่ใช่หรือครับ คำที่ต้องการมีแค่ 10 บรรทัดเอง
ลองดูที่กระทู้ที่1 ตามที่แจ้งไว้ เอาเฉพาะบรรทัดที่มีคำว่า "Booking", "Waiting", "Mail / New patient"

Re: Macro : รบกวนด้วยครับ รวมข้อมูลใน sheet "1" และ "2" ( อาจมีมากกว่า 2 Sheet) เข้าด้วยกัน

Posted: Sat Sep 14, 2019 11:08 am
by wisitsakbenz
คำถามอาจจะไม่เคลียร์ครับ ยังไงขอโทษด้วยครับอาจารย์

คือ ผมอยากให้รวมข้อมูลทั้งหมดใน Sheet "1" ( Row ที่ 2-21 ) และ "2" (Row ที่ 2-21) ไปไว้ใน Sheet "Data" โดยไม่นำในส่วนของ Sheet "1" Row ที่ 23-26, Sheet "2" Row 23-26 มาด้วย

หลังจากที่รวมแล้ว อยากให้ insert Row ที่ 23-26 แสดงผลรวมในส่วนท้ายของ Sheet "Data" ครับ

ขอบคุณครับ

Re: Macro : รบกวนด้วยครับ รวมข้อมูลใน sheet "1" และ "2" ( อาจมีมากกว่า 2 Sheet) เข้าด้วยกัน

Posted: Sat Sep 14, 2019 12:08 pm
by puriwutpokin
แทรกบรรทัดที่ ชีท Data ไว้ล่วงหน้าเผื่อข้อมูลที่จะมาว่างครับ แล้วปรับโค้ดเป็น

Code: Select all

Sub CollectData()
    Dim ws As Worksheet
    Dim r As Range
    Dim rTarget As Range
    Application.ScreenUpdating = False
    For Each ws In Worksheets
        If ws.Name <> "Data" Then
            With Sheets("Data")
                Set rTarget = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
            End With
            Set r = ws.Range("A2", ws.Range("A" & Rows.Count).End(xlUp))
              r.SpecialCells(xlCellTypeConstants).EntireRow.Copy
              rTarget.PasteSpecial xlPasteValues
        End If
    Next ws
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub

Re: Macro : รบกวนด้วยครับ รวมข้อมูลใน sheet "1" และ "2" ( อาจมีมากกว่า 2 Sheet) เข้าด้วยกัน

Posted: Sat Sep 14, 2019 1:15 pm
by wisitsakbenz
สอบถามอาจารย์ครับ

ทางผมไม่สามารคาดเดาได้เลยว่า จะต้องแทรก Row ล่วงหน้าใน Sheet "Data" เท่าไหร่ เพราะ เวลาใช้งานจริง ข้อมูลที่เอามารวมใน Sheet Data จะมีจำนวน Sheet ประมาณ 30 Sheet ครับ

อาจารย์พอมีวิธีที่ สามารถ แทรก Row ที่ 23-26 ให้อัตโนมัติ ใน Sheet "Data" หลังจากรวมข้อมูลทั้งหมดแล้วหรือไม่ครับ

ขอบคุณครับ