Page 1 of 1
[VBA] การเลื่อนไปทางขวา 1 ช่อง
Posted: Fri Apr 19, 2013 11:49 am
by poipoi
จากไฟล์แนบ; ต้องการให้ไปที่ตัวสุดท้ายของ 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 ครับ และได้พยายามลองปรับ แก้ไข แล้วก็ไม่เป็นผลครับ
Re: [VBA] การเลื่อนไปทางขวา 1 ช่อง
Posted: Fri Apr 19, 2013 12:29 pm
by joo
poipoi wrote:ต้องการให้ไปที่ตัวสุดท้ายของ Col. J แล้วเลื่อนไปทางขวา แล้วคลุม ทั้ง 2 ช่อง (Col. K, L) แล้วลากถึงข้างบนเพื่อ copy
อ่านแล้วไม่เข้าใจลองอธิบายให้ละเอียดอีกหน่อยครับว่าต้องการที่จะทำอะไร คัดลอกข้อมูลใดและด้วยเงื่อนไขใดครับ
Re: [VBA] การเลื่อนไปทางขวา 1 ช่อง
Posted: Fri Apr 19, 2013 12:49 pm
by poipoi
ต้องการคัดลอกสูตร vlookup ที่คอลั่ม เค และ แอล ครับ โดยที่ใน raw data นั้นไม่ได้มีแค่ที่เดียว (แต่ที่ตัดมามีเฉพาะ BOS) และไม่มีความแน่นอนว่า ตัวโค้ดที่จะกอปปี้ลง คอลั่ม เจ นั้นจะมีความยาวเท่าไหร่ครับ
เลยต้องการที่จะเขียนให้ได้เป็น
จากคอลั้ม เจ เลื่อนลงมาที่คอดตัวสุดท้าย
แล้ว เลื่อนไปคลุมคอลั่ม เค และ แอล
จากนั้นก็ shift + arrow up เพื่อที่จะคลุมทั้งหมด แล้วกอปปี้ครับ
Re: [VBA] การเลื่อนไปทางขวา 1 ช่อง
Posted: Fri Apr 19, 2013 2:49 pm
by poipoi
ได้แล้วครับ ตามนี้ครับ
Code: Select all
Range("K6:L" & Range("J65000").End(xlUp).Row).Select
Selection.copy
ขอบคุณสำหรับพื้นที่ครับ
Re: [VBA] การเลื่อนไปทางขวา 1 ช่อง
Posted: Fri Apr 19, 2013 3:13 pm
by snasui
poipoi wrote:ต้องการคัดลอกสูตร vlookup ที่คอลั่ม เค และ แอล ครับ โดยที่ใน raw data นั้นไม่ได้มีแค่ที่เดียว (แต่ที่ตัดมามีเฉพาะ BOS) และไม่มีความแน่นอนว่า ตัวโค้ดที่จะกอปปี้ลง คอลั่ม เจ นั้นจะมีความยาวเท่าไหร่ครับ
เลยต้องการที่จะเขียนให้ได้เป็น
จากคอลั้ม เจ เลื่อนลงมาที่คอดตัวสุดท้าย
แล้ว เลื่อนไปคลุมคอลั่ม เค และ แอล
จากนั้นก็ shift + arrow up เพื่อที่จะคลุมทั้งหมด แล้วกอปปี้ครับ

การอ้างอิงควรอ้างอิงเป็นตัวอักษรภาษาอังกฤษ จะได้เข้าใจได้ง่ายครับ เช่น คอลัมน์ J, คอลัมน์ L เป็นต้น

Re: [VBA] การเลื่อนไปทางขวา 1 ช่อง
Posted: Fri Apr 19, 2013 3:14 pm
by poipoi
รับทราบครับผม
Re: [VBA] การเลื่อนไปทางขวา 1 ช่อง
Posted: Fri Apr 19, 2013 3:23 pm
by nattasiray
เสริม
ตัดรหัสการเลือกกลุ่มเซลล์ ให้เหลือเพียงขั้นตอนเดียว
จาก
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 ให้ใช้รหัส
Re: [VBA] การเลื่อนไปทางขวา 1 ช่อง
Posted: Fri Apr 19, 2013 3:37 pm
by poipoi
ขอบคุณสำหรับคำชี้แนะเพิ่มเติมครับ
แล้วถ้าผมอยาก copy ทั้งชีทควรจะใช้รหัสอะไรครับ ?
Re: [VBA] การเลื่อนไปทางขวา 1 ช่อง
Posted: Fri Apr 19, 2013 9:27 pm
by snasui

ลองบันทึก Macro แล้วดูรหัสที่ได้ครับ
Re: [VBA] การเลื่อนไปทางขวา 1 ช่อง
Posted: Fri Apr 19, 2013 9:43 pm
by nattasiray
แนะนำให้คัดลอกเวิร์คชีตจะดีกว่าเพราะได้ทั้งระยะขอบกระดาษ บรรทัดที่ต้องการพิมพ์ซัำ เหมือนต้นฉบับทุกประการ ตัดการจัด Format Cells และอื่น ๆ