Page 1 of 2

อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Mon Oct 28, 2019 10:15 am
by March201711
ที่ sheet Data_BCE เป็นข้อมูล Main ได้ทุกวันจะมีการเปลียนตามมากน้อยของข้อมูล ซึ่งถ้าข้อมูลได้มาแล้วจะต้องกระจายไปแต่ละ sheet โดยดูชื่อ code ID ที่ column U ว่ามีกี่รายการ แล้วไปกระจายแต่ละชีท

Ex : sheet Data_BCE มี 4 รายการ ให้กระจายรายการไป

ที่ sheet1 โดยดู column U ที่ U4 , ตรง sheet1 cell A2 จะมีชื่อว่า 011321-9 และ cell B2 ชื่อ Ms.Kaesorn Vajarapongse และชื่อsheet เปลี่ยนเป็น Mr.Kaesorn ตาม

ที่ sheet2 โดยดู column U ที่ U5 , ตรง sheet1 cell A2 จะมีชื่อว่า 345018-9 และ cell B2 ชื่อ Mr.Pathana Sae-Ow-Eiang และชื่อsheet เปลี่ยนเป็น Mr.Pathana ตาม

ที่ sheet3 โดยดู column U ที่ U6 , ตรง sheet1 cell A2 จะมีชื่อว่า 133823-9 และ cell B2 ชื่อ Mr.Chainapol Akarasupaset และชื่อsheet เปลี่ยนเป็น Mr.Chainapol ตาม

ที่ sheet4 โดยดู column U ที่ U7 , ตรง sheet1 cell A2 จะมีชื่อว่า 470486-9 และ cell B2 ชื่อ Mr.Lutz Wierschin และชื่อsheet เปลี่ยนเป็น Mr.Lutz ตาม

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Mon Oct 28, 2019 2:20 pm
by DhitiBank
การทำแบบนั้นต้องใช้ VBA ครับ ตามกฎคือจะต้องเขียนมาเองก่อน ติดปัญหาค่อยถามกันต่อครับ

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Mon Oct 28, 2019 9:07 pm
by March201711
ลองทำแล้วคะ ยังไม่ได้น่ะค่ะ ตามเอกสารแนบ

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Tue Oct 29, 2019 8:34 pm
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

Sub UpdateData()
    Dim rAll As Range
    Dim r As Range
    Dim sh As Worksheet
    Dim i As Integer
    i = 2
    With Sheets("Data_BCE")
        Set rAll = .Range("u4", .Range("u" & .Rows.Count).End(xlUp))
        For Each r In rAll
            If r.Value = "" Then Exit Sub
            Set sh = Worksheets(i)
            With sh
                .Range("a2:b2").Value = r.Resize(1, 2).Value
                .Name = r.Offset(0, 1).Value
                .Range("b4").Resize(1, 9).Value = _
                    r.Parent.Cells(4, "b").Resize(1, 12).Value
            End With
            i = i + 1
        Next r
    End With
End Sub

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Tue Oct 29, 2019 9:12 pm
by March201711
ถามอีกนิดนึงค่ะ ถ้ามี sheetงานอื่นรวมอยู่ด้วย อยากให้ทับชื่อ sheet ที่เป็นสีน้ำเงินเข้มเท่านั้น เพราะพอ run แล้ว ข้อมูลไปทับที่ sheetงานอื่นค่ะ

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Tue Oct 29, 2019 9:23 pm
by snasui
:D ลองเปลี่ยนค่า i เป็นค่าอื่นใดที่ไม่ใช่ 2 แล้วสังเกตผลที่ได้ ปรับค่านี้จนไม่ทับชีตที่จะใช้งานครับ

การถามตอบเรื่อง Code เมื่อได้รับคำตอบแล้วจะต้องปรับปรุง Code นั้นมาเองก่อน ติดตรงไหนค่อยถามกันต่อ กรณีถามต่อเนื่องโดยไม่มีการปรับปรุงใด ๆ มาก่อนจะไม่ได้รับคำตอบครับ

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Tue Oct 29, 2019 9:38 pm
by March201711
ค่ะ สงสัยนิดค่ะ ถ้ามี sheet ที่ hide ไว้อยู่ i ยังนับจำนวนที่ hide ไปด้วยน่ะค่ะ ถ้าจะกำหนดsheet46, 48,49,50 เลยได้ไหมคะ เพราะมีงานอื่น hide ไว้เยอะแยะเลยค่ะ

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Tue Oct 29, 2019 9:41 pm
by snasui
:D กำหนดเช่นนั้นได้เลยแต่จะต้อง Loop เป็น กำหนดตรง ๆ จะไม่ยืดหยุ่นครับ

้ถ้าให้ง่าย ชีตที่ต้องการให้แสดงผลให้วางไว้หลังสุดและเรียงต่อเนื่องกันครับ

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Tue Oct 29, 2019 10:51 pm
by March201711
กำหนด loop ยังไงค่ะ ไม่สันทัดเลยค่ะ

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Wed Oct 30, 2019 10:57 pm
by snasui
:D ผมได้โพสต์ทางเลือกแบบไม่ต้อง Loop ไว้แล้วกรุณาทดลองใช้ตามนั้น

งานลักษณะนี้ต้องอาศัย VBA หากไม่ถนัดการ Code ก็ควรทำด้วยด้วยมือแทนการใช้ Code ครับ

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Fri Nov 01, 2019 8:43 pm
by March201711
ค่ะ จะลองทำดูค่ะ

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Sun Nov 10, 2019 9:18 pm
by March201711
ถ้า แต่ละ sheetมีข้อมูลเดิมเก่าอยู่แล้ว ข้อมูลใหม่จะไปทับข้อมูลเดิม ต้องปรับ code อย่่างไรคะ

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Sun Nov 10, 2019 9:45 pm
by snasui
:D ต้องการปรับให้เป็นแบบใด เขียนมาเองแล้วหรือไม่ ติดปัญหาตรงไหน กรุณาอธิบายรายละเอียดมาในช่องความเห็นนี้พอสังเขปด้วยครับ

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Wed Feb 19, 2020 5:44 pm
by March201711
พอกด Run แล้ว ข้อมูลที่ sheet Foreign_A column อื่นๆ หายไปหมดเลยค่ะ ซึ่งข้อมูลที่ถูกต้องควรจะเป็น เหมือน Sheet "ข้อมูลที่ถูกต้อง" สีแดง Row ที่ 54,74,108,142,159,176,192 ค่ะ

ซึ่งบางวันมีหลายรายการ บางวันมี 2-3 รายการ ถ้ามีแค่รายการเดียวจะทำให้มีปัญหาค่ะ

Code: Select all

Sub KeepData_Fore()


    Range("B4:E4").Select

    Range(Selection, Selection.End(xlDown)).Select

    Selection.Copy

    Sheets("Foreign_A").Select

    Range("A3").Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False

    Range("E3").Select

    Sheets("Data_BCE").Select

    Range("G4:I4").Select

    Range(Selection, Selection.End(xlDown)).Select

    Application.CutCopyMode = False

    Selection.Copy

    Sheets("Foreign_A").Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False

    Range("F1").Select

    Sheets("Data_BCE").Select

    Range("J1").Select

    Application.CutCopyMode = False

End Sub

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Wed Feb 19, 2020 9:47 pm
by snasui
:D ลอง Debug แล้วหรือไม่ครับ ถ้ายังไม่ Debug กรุณาทำการ Debug มาก่อนแล้วแจ้งมาว่าผิดพลาดที่บรรทัดไหนที่ทำให้ข้อมูลหายไปครับ

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Wed Feb 19, 2020 10:00 pm
by March201711
มันrunได้ค่ะ แต่ไปทับข้อมูลอื่นที่บรรทัดอื่นค่ะ

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Wed Feb 19, 2020 10:00 pm
by snasui
:D ทราบครับ เจอบรรทัดนั้นหรือไม่ หาให้เจอก่อนครับ

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Wed Feb 19, 2020 10:05 pm
by March201711
น่าจะเป็นช่วงที่เลือก cell น่ะค่ะ บางวันมีหลายรายการ ไม่เป็นไร แต่พอวันนี้มีรายการเดียว ทำให้ไปทับข้อมูลของวันก่อนหานหมดเลยค่ะ

Code: Select all

 
    Range("B4:E4").Select

    Range(Selection, Selection.End(xlDown)).Select

    Selection.Copy

    Sheets("Foreign_A").Select

    Range("A3").Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False 

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Wed Feb 19, 2020 10:19 pm
by snasui
:D ขอเปลี่ยนคำถาม

ทราบหรือไม่ว่าการ Debug ทำอย่างไร อธิบายมาให้ทราบด้วยครับ :?:

Re: อยากให้ข้อมูลวิ่งตามชื่อมาใส่ในแต่ละ sheet และเปลี่ยนชื่อsheet ตาม cell B2

Posted: Wed Feb 19, 2020 10:28 pm
by March201711
การ Dedug ก็แก้code ค่ะ จะมี high light สีเหลืองแสดงให้เห็นแล้วให้เข้าไปแก้ที่ code นั้นๆเพื่อ ระบบจะได้ทำงานต่อค่ะ