snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
poipoi
Member
Posts: 164 Joined: Fri May 18, 2012 11:23 am
Contact:
#1
Post
by poipoi » Fri Apr 19, 2013 11:49 am
จากไฟล์แนบ; ต้องการให้ไปที่ตัวสุดท้ายของ Col. J แล้วเลื่อนไปทางขวา แล้วคลุม ทั้ง 2 ช่อง (Col. K, L) แล้วลากถึงข้างบนเพื่อ copy
สามารถเขียนได้แบบใดบ้าง ข้างต้นนี้ผมได้ลองพยายามเขียนแล้วแต่ก็ไม่เป็นผลครับ
เลยอยากจะมาถามผู้รู้ในห้องนี้ให้ช่วยแนะนำครับ
Code: Select all
Selection.End(xlDown).Select
Selection.End(xlToRight).Select
Range(Selection, Selection.End(xlUp)).Select
Range("K6:L49").Select
Range("L49").Activate
code ข้างบนได้จากการ record ครับ และได้พยายามลองปรับ แก้ไข แล้วก็ไม่เป็นผลครับ
Attachments
TEST.xlsm
(138.4 KiB) Downloaded 27 times
joo
Gold
Posts: 1213 Joined: Sat Apr 17, 2010 3:50 pm
#2
Post
by joo » Fri Apr 19, 2013 12:29 pm
poipoi wrote: ต้องการให้ไปที่ตัวสุดท้ายของ Col. J แล้วเลื่อนไปทางขวา แล้วคลุม ทั้ง 2 ช่อง (Col. K, L) แล้วลากถึงข้างบนเพื่อ copy
อ่านแล้วไม่เข้าใจลองอธิบายให้ละเอียดอีกหน่อยครับว่าต้องการที่จะทำอะไร คัดลอกข้อมูลใดและด้วยเงื่อนไขใดครับ
poipoi
Member
Posts: 164 Joined: Fri May 18, 2012 11:23 am
Contact:
#3
Post
by poipoi » Fri Apr 19, 2013 12:49 pm
ต้องการคัดลอกสูตร vlookup ที่คอลั่ม เค และ แอล ครับ โดยที่ใน raw data นั้นไม่ได้มีแค่ที่เดียว (แต่ที่ตัดมามีเฉพาะ BOS) และไม่มีความแน่นอนว่า ตัวโค้ดที่จะกอปปี้ลง คอลั่ม เจ นั้นจะมีความยาวเท่าไหร่ครับ
เลยต้องการที่จะเขียนให้ได้เป็น
จากคอลั้ม เจ เลื่อนลงมาที่คอดตัวสุดท้าย
แล้ว เลื่อนไปคลุมคอลั่ม เค และ แอล
จากนั้นก็ shift + arrow up เพื่อที่จะคลุมทั้งหมด แล้วกอปปี้ครับ
poipoi
Member
Posts: 164 Joined: Fri May 18, 2012 11:23 am
Contact:
#4
Post
by poipoi » Fri Apr 19, 2013 2:49 pm
ได้แล้วครับ ตามนี้ครับ
Code: Select all
Range("K6:L" & Range("J65000").End(xlUp).Row).Select
Selection.copy
ขอบคุณสำหรับพื้นที่ครับ
snasui
Site Admin
Posts: 31253 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#5
Post
by snasui » Fri Apr 19, 2013 3:13 pm
poipoi wrote: ต้องการคัดลอกสูตร vlookup ที่คอลั่ม เค และ แอล ครับ โดยที่ใน raw data นั้นไม่ได้มีแค่ที่เดียว (แต่ที่ตัดมามีเฉพาะ BOS) และไม่มีความแน่นอนว่า ตัวโค้ดที่จะกอปปี้ลง คอลั่ม เจ นั้นจะมีความยาวเท่าไหร่ครับ
เลยต้องการที่จะเขียนให้ได้เป็น
จากคอลั้ม เจ เลื่อนลงมาที่คอดตัวสุดท้าย
แล้ว เลื่อนไปคลุมคอลั่ม เค และ แอล
จากนั้นก็ shift + arrow up เพื่อที่จะคลุมทั้งหมด แล้วกอปปี้ครับ
การอ้างอิงควรอ้างอิงเป็นตัวอักษรภาษาอังกฤษ จะได้เข้าใจได้ง่ายครับ เช่น คอลัมน์ J, คอลัมน์ L เป็นต้น
poipoi
Member
Posts: 164 Joined: Fri May 18, 2012 11:23 am
Contact:
#6
Post
by poipoi » Fri Apr 19, 2013 3:14 pm
รับทราบครับผม
nattasiray
Bronze
Posts: 284 Joined: Thu Feb 11, 2010 8:32 pm
Contact:
#7
Post
by nattasiray » Fri Apr 19, 2013 3:23 pm
เสริม
ตัดรหัสการเลือกกลุ่มเซลล์ ให้เหลือเพียงขั้นตอนเดียว
จาก
Range("K6:L" & Range("J65000").End(xlUp).Row).
Select
Selection .copy
เมื่อพบ Selection ขึ้นต้นบรรทัดใหม่ โดยบรรทัดก่อนหน้ามี Select อยู่ท้าย
ให้ยุบเหลือ
Code: Select all
Range("K6:L" & Range("J65000").End(xlUp).Row).Copy
หากต้องการคัดลอกทั้งตารางข้อมูลที่อยู่คอลัมน์ A ถึง คอลัมน์ C โดยหัวตารางเริ่มที่เซลล์ A1 ให้ใช้รหัส
ณัฐศิระ เยาวสุต
(N. Yauvasuta)
poipoi
Member
Posts: 164 Joined: Fri May 18, 2012 11:23 am
Contact:
#8
Post
by poipoi » Fri Apr 19, 2013 3:37 pm
ขอบคุณสำหรับคำชี้แนะเพิ่มเติมครับ
แล้วถ้าผมอยาก copy ทั้งชีทควรจะใช้รหัสอะไรครับ ?
snasui
Site Admin
Posts: 31253 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#9
Post
by snasui » Fri Apr 19, 2013 9:27 pm
ลองบันทึก Macro แล้วดูรหัสที่ได้ครับ
nattasiray
Bronze
Posts: 284 Joined: Thu Feb 11, 2010 8:32 pm
Contact:
#10
Post
by nattasiray » Fri Apr 19, 2013 9:43 pm
แนะนำให้คัดลอกเวิร์คชีตจะดีกว่าเพราะได้ทั้งระยะขอบกระดาษ บรรทัดที่ต้องการพิมพ์ซัำ เหมือนต้นฉบับทุกประการ ตัดการจัด Format Cells และอื่น ๆ
ณัฐศิระ เยาวสุต
(N. Yauvasuta)