Page 1 of 1

Code VBA เลือกช่วงข้อมูลแบบไม่แน่นอน

Posted: Fri Jun 04, 2021 10:22 pm
by aniwat2011
เรียน อาจารย์และพี่ ๆ ที่เคารพครับ
ตอนนี้ผมเพิ่งกำลังเรียนรู้ VBA ยังไม่ก้าวหน้าเลยครับ
และได้นำไฟล์งานที่ใช้ในงานประจำมาฝึกทำไปด้วยครับ
ตอนนี้ยังไม่สามารถเขียน code ได้ตามที่ต้องการครับต้องขอความรู้จากอาจารย์และพี่ ๆ อีกเยอะเลยครับ
ขอบคุณล่วงหน้าครับผม

ความต้องการ
เมื่อกดปุ่ม "คัดลอกข้อมูลเพื่อไปใช้ในไฟล์ i-pay" แล้ว
1. ให้ทำการเลือกช่วงข้อมูลเริ่มจากคอลัมน์ C2 ถึงคอลัมน์ E2 ลงมาถึงบรรทัดสุดท้ายก่อนบรรทัดรวม
2. ดังภาพตัวอย่าง ทำการเลือกข้อมูล C2 : E19 แล้วทำการ Copy
3. ซึ่งบรรทัดสุดท้ายไม่แน่นอนให้สามารถยืดหยุ่นได้
4. เริ่มต้นที่ C2 เหมือนกัน แต่บรรทัดสุดท้ายไม่เหมือนกันขึ้นอยู่กับข้อมูล
5. ข้อมูลที่นำมาวางที่ชีท “Copy จาก งด.4 มาวาง” เป็นไฟล์ นามสกุล .xls
item2.xlsm
ไฟล์ตัวอย่าง
(180.49 KiB) Downloaded 10 times
item2.xlsm
ไฟล์ตัวอย่าง
(180.49 KiB) Downloaded 10 times

Code: Select all

Sub copy()
    Range("B2").Select
    ActiveCell.Offset(0, 1).Select
    Range(ActiveCell, ActiveCell.End(xlDown)).Select
    Range(ActiveCell, ActiveCell.Offset(0, 2)).Select
End Sub

Re: Code VBA เลือกช่วงข้อมูลแบบไม่แน่นอน

Posted: Fri Jun 04, 2021 10:59 pm
by Bo_ry

Code: Select all

Sub copy()
    Range("C2", Columns(3).Find(0, LookIn:=xlValues, lookat:=xlWhole).Offset(-1)).Resize(, 3).copy
End Sub

Re: Code VBA เลือกช่วงข้อมูลแบบไม่แน่นอน

Posted: Sat Jun 05, 2021 6:00 am
by aniwat2011
เรียนคุณ Bo_ry
ต้องขอขอบคุณมาก ๆ ครับ ที่กรุณาตอบ
ผมนำ code ที่ให้ไปทดสอบแล้วครับสามารถใช้งานได้ตามที่ต้องการ
ขอขอบคุณอีกครั้งครับที่สละเวลามาให้ความรู้ครั้งนี้ครับ
หากเรานำไฟล์นี้ไปใช้กับ Excel ต่างเวอร์ชั่น เช่น Excel2003 /2007 / 2010 / 2013 /2016 / Excel365 ได้ไหมครับ
ขอบคุณครับ

Re: Code VBA เลือกช่วงข้อมูลแบบไม่แน่นอน

Posted: Sat Jun 05, 2021 7:21 am
by snasui
aniwat2011 wrote: Sat Jun 05, 2021 6:00 am หากเรานำไฟล์นี้ไปใช้กับ Excel ต่างเวอร์ชั่น เช่น Excel2003 /2007 / 2010 / 2013 /2016 / Excel365 ได้ไหมครับ
:D ฟังก์ชั่น Find มีในทุก Version ที่กล่าวมาครับ

Re: Code VBA เลือกช่วงข้อมูลแบบไม่แน่นอน

Posted: Sat Jun 05, 2021 8:11 am
by aniwat2011
ขอบคุณครับอาจารย์