เพื่อมุ่งให้เกิดคุณภาพจากการอบรมสูงสุด Excel Expert Training ให้การอบรม Excel กลุ่มเล็กๆ ไม่เกิน 6 คนทุกคนสามารถเรียนรู้ Excel อย่างใกล้ชิด จะมาคนเดียวหรือมาเป็นกลุ่มแล้วนัดวันอบรมแบบส่วนตัวก็ได้ ผู้เข้าอบรมทุกคนสามารถติดตามเนื้อหาที่อบรมได้อย่างชัดเจนจากจอภาพด้านหน้าของตัวเอง
Results 1 to 5 of 5

Thread: สอบถามวิธี copy ข้อมูลจากหลาย column มาต่อกันใน column เดียว

  1. #1
    Aoo
    Guest

    สอบถามวิธี copy ข้อมูลจากหลาย column มาต่อกันใน column เดียว

    ถ้าในแต่ละsheet ผมมี column ชื่อ กับ นามสกุล
    มี sheet ทั้งหมด 3 sheet แล้วไม่ทราบจำนวน Row ของแต่ละ Sheet

    ผมต้องการสร้าง sheet ใหม่ขึ้นมาเพื่อเอา column ชื่อ และ นามสกุล ของ 3 sheet ข้างต้นมาต่อกัน จะทำยังไงครับ


    Sheet 1
    =====
    firstname01,lastname01
    firstname02,lastname02
    firstname03,lastname03

    Sheet 2
    =====
    firstname04,lastname04
    firstname05,lastname05

    Sheet 3
    =====
    firstname08,lastname08
    firstname09,lastname09
    firstname10,lastname10

    !!new sheet!!
    ========
    firstname01,lastname01
    firstname02,lastname02
    firstname03,lastname03
    firstname04,lastname04
    firstname05,lastname05
    firstname08,lastname08
    firstname09,lastname09
    firstname10,lastname10

    คำถามใหม่
    ถ้า sheet 1 มีลักษณะเป็นตามข้างล่างนี้ (จำนวน Row ไม่แน่นอน)
    First Name Last Name First Name Last Name
    |firstname01|lastname01|firstname11|lastname11|
    |firstname02|lastname02|firstname12|lastname12|
    |firstname03|lastname03|firstname13|lastname13|
    ผมจะต้องทำอย่างไรให้ sheet 2 แสดงค่าโดยอัตโนมัติเป็น
    |First Name|Last Name|
    |firstname01|lastname01|
    |firstname02|lastname02|
    |firstname03|lastname03|
    |firstname11|lastname11|
    |firstname12|lastname12|
    |firstname13|lastname13|

  2. #2
    สมเกียรติ
    Guest
    ให้เปิดชีทใหม่ขึ้นมาก่อนเป็นชีทที่ 4 แล้วใช้ Macro Recorder บันทึกแบบ Relative ตามขั้นตอนดังนี้
    1. กดปุ่ม Ctrl+Home เพื่อไปที่เซลล์ A1 ในชีท 4
    2. คลิกชีท 1
    3. กดปุ่ม Ctrl+Home เพื่อไปที่เซลล์ A1
    4. กดปุ่ม F5 > Special > กาช่อง Current Region เพื่อเลือกพื้นที่ทั้งหมดที่ติดกัน
    5. กดปุ่ม Ctrl+c เพื่อ Copy
    6. คลิกที่ชีท 4
    7. กดปุ่ม Enter เพื่อ Paste
    8. กดปุ่มลูกศรลงมาครั้งหนึ่งเพื่อเลือกเซลล์ถัดไป
    9. กดปุ่ม End ตามด้วยลูกศรลงครั้งหนึ่งเพื่อเลือกจนสุดขอบตาราง
    10. กดปุ่มลูกศรลงมาครั้งหนึ่งเพื่อเลือกเซลล์ถัดไป
    11. จากนั้นให้ทำซ้ำเริ่มตั้งแต่ขั้นตอนที่สองถึง 10 แต่คราวนี้ให้เป็นชีท 2, 3 บ้าง
    ก่อนจบการบันทึกให้กดปุ่ม Relative ซ้ำเพื่อล้างเลือกแล้วจึง Stop Macro
    จะได้รหัสตามนี้ครับ
    Code:
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro recorded 2/7/2009 by Excel Expert Training
    '
    ' Keyboard Shortcut: Ctrl+q
    '
        Range("A1").Select
        Sheets("Sheet1").Select
        Range("A1").Select
        Selection.CurrentRegion.Select
        Selection.Copy
        Sheets("Sheet4").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        ActiveCell.Offset(1, 0).Range("A1").Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Range("A1").Select
        Sheets("Sheet2").Select
        Range("A1").Select
        Selection.CurrentRegion.Select
        Selection.Copy
        Sheets("Sheet4").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        ActiveCell.Offset(1, 0).Range("A1").Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Range("A1").Select
        Sheets("Sheet3").Select
        Range("A1").Select
        Selection.CurrentRegion.Select
        Selection.Copy
        Sheets("Sheet4").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Range("A1").Select
    End Sub
    ทดลองกับแฟ้มแนบนี้ดูครับ ลองเพิ่มลดข้อมูลในชีท 1-3 ดูว่านำมาต่อกันได้ไหม ก่อนจะสั่งซ้ำให้ลบข้อมูลที่ paste ทิ้งก่อนเริ่มใหม่
    แนะนำให้อ่าน เคล็ดการเพิ่มผลงาน ลดความซับซ้อนของงานด้วย Excel VBA

    ปล เดิมคุณถามว่า จะนำข้อมูลจากชีทอื่นที่มีจำนวนรายการไม่แน่นอนมาบันทึกต่อกันในชีทอื่น จะทำอย่างไร

  3. #3
    สมเกียรติ
    Guest
    อ้าว ทำไมถึงเปลี่ยนคำถามต่างจากเดิมที่ถามมาครับ ขอให้เอาคำถามเดิมกลับมาในกระทู้นี้ แล้วไปตั้งคำถามใหม่ในกระทู้ใหม่ :nonod: :nonod: :nonod:

    ขอให้ทำตัวอย่างแนบมาด้วยดีกว่าครับ ช่วยให้ตอบได้สะดวกขึ้น

    แต่ถ้าเข้าใจหลักการจะพบว่า นำวิธีที่ผมทำให้ไปใช้กับคำถามที่แก้ใหม่ได้ทันที ดังนั้นผมจะไม่ทำคำตอบให้ใหม่แล้ว เดี๋ยวคุณจะเปลี่ยนใจตั้งคำถามต่างไปจากเดิมอีก :???:

  4. #4
    bigdaddy
    Guest
    ขอเสนอแนวคิดเพิ่มเติมครับ
    @ถ้า sheet 1 มีลักษณะเป็นตามข้างล่างนี้ (จำนวน Row ไม่แน่นอน)
    First Name Last Name First Name Last Name
    |firstname01|lastname01|firstname11|lastname11|@
    1. กำหนด FullnameArray(131070, 2)
    2. อ่านข้อมูลทุกแถว Column 1,2 มาเก็บไว้ใน Array
    เมื่ออ่านถึงแถวที่มีค่าว่าง ก็ให้ไปเริ่มอ่านใหม่ที่แถวแรก Column 3,4
    2. อ่านข้อมูลทุกแถว Column 3,4 มาเก็บไว้ใน Array
    เมื่ออ่านถึงแถวที่มีค่าว่าง ก็หยุดอ่าน เพราะอ่านหมดแล้ว
    @ผมจะต้องทำอย่างไรให้ sheet 2 แสดงค่าโดยอัตโนมัติเป็น
    |First Name|Last Name|
    |firstname01|lastname01|@
    1. Select sheet 2 ครับ
    2. นำข้อมูลจาก FullnameArray()
    มาเขียนที่ sheet 2 ตั้งแต่ต้นจนจบ

  5. #5
    Aoo
    Guest
    Quote Originally Posted by สมเกียรติ View Post
    อ้าว ทำไมถึงเปลี่ยนคำถามต่างจากเดิมที่ถามมาครับ ขอให้เอาคำถามเดิมกลับมาในกระทู้นี้ แล้วไปตั้งคำถามใหม่ในกระทู้ใหม่ :nonod: :nonod: :nonod:

    ขอให้ทำตัวอย่างแนบมาด้วยดีกว่าครับ ช่วยให้ตอบได้สะดวกขึ้น

    แต่ถ้าเข้าใจหลักการจะพบว่า นำวิธีที่ผมทำให้ไปใช้กับคำถามที่แก้ใหม่ได้ทันที ดังนั้นผมจะไม่ทำคำตอบให้ใหม่แล้ว เดี๋ยวคุณจะเปลี่ยนใจตั้งคำถามต่างไปจากเดิมอีก :???:
    ขอบคุณและขออภัยครับ ผมเอาคำถามเดิมกลับมาไว้ที่เดิมแล้วครับ:bang:

Similar Threads

  1. Replies: 6
    Last Post: 28 Aug 2009, 10:49
  2. Replies: 3
    Last Post: 23 Aug 2009, 13:01
  3. Replies: 13
    Last Post: 9 Nov 2008, 20:05
  4. Replies: 1
    Last Post: 6 Jun 2008, 10:46
  5. Replies: 1
    Last Post: 21 Mar 2008, 14:38

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •