เพื่อมุ่งให้เกิดคุณภาพจากการอบรมสูงสุด Excel Expert Training ให้การอบรม Excel กลุ่มเล็กๆ ไม่เกิน 6 คนทุกคนสามารถเรียนรู้ Excel อย่างใกล้ชิด จะมาคนเดียวหรือมาเป็นกลุ่มแล้วนัดวันอบรมแบบส่วนตัวก็ได้
ผู้เข้าอบรมทุกคนสามารถติดตามเนื้อหาที่อบรมได้อย่างชัดเจนจากจอภาพด้านหน้าของตัวเอง
-
สอบถามวิธี 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|
-
ให้เปิดชีทใหม่ขึ้นมาก่อนเป็นชีทที่ 4 แล้วใช้ Macro Recorder บันทึกแบบ Relative ตามขั้นตอนดังนี้- กดปุ่ม Ctrl+Home เพื่อไปที่เซลล์ A1 ในชีท 4
- คลิกชีท 1
- กดปุ่ม Ctrl+Home เพื่อไปที่เซลล์ A1
- กดปุ่ม F5 > Special > กาช่อง Current Region เพื่อเลือกพื้นที่ทั้งหมดที่ติดกัน
- กดปุ่ม Ctrl+c เพื่อ Copy
- คลิกที่ชีท 4
- กดปุ่ม Enter เพื่อ Paste
- กดปุ่มลูกศรลงมาครั้งหนึ่งเพื่อเลือกเซลล์ถัดไป
- กดปุ่ม End ตามด้วยลูกศรลงครั้งหนึ่งเพื่อเลือกจนสุดขอบตาราง
- กดปุ่มลูกศรลงมาครั้งหนึ่งเพื่อเลือกเซลล์ถัดไป
- จากนั้นให้ทำซ้ำเริ่มตั้งแต่ขั้นตอนที่สองถึง 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
ปล เดิมคุณถามว่า จะนำข้อมูลจากชีทอื่นที่มีจำนวนรายการไม่แน่นอนมาบันทึกต่อกันในชีทอื่น จะทำอย่างไร
-
อ้าว ทำไมถึงเปลี่ยนคำถามต่างจากเดิมที่ถามมาครับ ขอให้เอาคำถามเดิมกลับมาในกระทู้นี้ แล้วไปตั้งคำถามใหม่ในกระทู้ใหม่ :nonod: :nonod: :nonod:
ขอให้ทำตัวอย่างแนบมาด้วยดีกว่าครับ ช่วยให้ตอบได้สะดวกขึ้น
แต่ถ้าเข้าใจหลักการจะพบว่า นำวิธีที่ผมทำให้ไปใช้กับคำถามที่แก้ใหม่ได้ทันที ดังนั้นผมจะไม่ทำคำตอบให้ใหม่แล้ว เดี๋ยวคุณจะเปลี่ยนใจตั้งคำถามต่างไปจากเดิมอีก :???:
-
ขอเสนอแนวคิดเพิ่มเติมครับ
@ถ้า 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 ตั้งแต่ต้นจนจบ
-

Originally Posted by
สมเกียรติ
อ้าว ทำไมถึงเปลี่ยนคำถามต่างจากเดิมที่ถามมาครับ ขอให้เอาคำถามเดิมกลับมาในกระทู้นี้ แล้วไปตั้งคำถามใหม่ในกระทู้ใหม่ :nonod: :nonod: :nonod:
ขอให้ทำตัวอย่างแนบมาด้วยดีกว่าครับ ช่วยให้ตอบได้สะดวกขึ้น
แต่ถ้าเข้าใจหลักการจะพบว่า นำวิธีที่ผมทำให้ไปใช้กับคำถามที่แก้ใหม่ได้ทันที ดังนั้นผมจะไม่ทำคำตอบให้ใหม่แล้ว เดี๋ยวคุณจะเปลี่ยนใจตั้งคำถามต่างไปจากเดิมอีก :???:
ขอบคุณและขออภัยครับ ผมเอาคำถามเดิมกลับมาไว้ที่เดิมแล้วครับ:bang:
Similar Threads
-
By pigphong in forum Excel Expert Forum Library 2012 - 2007
Replies: 6
Last Post: 28 Aug 2009, 10:49
-
By kunio13 in forum Excel Expert Forum Library 2012 - 2007
Replies: 3
Last Post: 23 Aug 2009, 13:01
-
By zv735 in forum Excel Expert Forum Library 2012 - 2007
Replies: 13
Last Post: 9 Nov 2008, 20:05
-
By milek in forum Excel Expert Forum Library 2012 - 2007
Replies: 1
Last Post: 6 Jun 2008, 10:46
-
By phadipat in forum Excel Expert Forum Library 2012 - 2007
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
-
Forum Rules