Page 1 of 1
ต้องการคัดลอกข้อมูลทั้งแถวมาวางไว้ในหัวข้อที่ตรงกันครับ
Posted: Tue Jul 28, 2020 3:18 am
by yodpao.b
ต้องการคัดลอกข้อมูลทั้งแถวมาวางไว้ในหัวข้อที่ตรงกันครับ
1.JPG
จากรูป
ต้องการคัดลอกข้อมูลในแถว N2:U2 ไปไว้ที่ D11:k11
โดยให้ค้นหาหัวข้อในคอลัม C6 ลงมาจนสุด
ผมทำได้แค่คอลัม D คอลัมเดียวครับ ผิด
ผลออกมาดังนี้
2.JPG
code ที่ใช้
Code: Select all
Sub Macro1()
With Sheets("Sheet2")
For Each r In .Range("M2")
.Range("C:C").Find(What:=r.Value, LookAt:=xlWhole).Offset(0, 1).Value = .Range("N2")
Next
End With
End Sub
คำตอบที่ถูกต้องดังรูปด้านล่างครับ
3.JPG
Re: ต้องการคัดลอกข้อมูลทั้งแถวมาวางไว้ในหัวข้อที่ตรงกันครับ
Posted: Tue Jul 28, 2020 3:21 am
by yodpao.b
ไฟล์แนบครับ
Re: ต้องการคัดลอกข้อมูลทั้งแถวมาวางไว้ในหัวข้อที่ตรงกันครับ
Posted: Tue Jul 28, 2020 9:21 am
by snasui

ตัวอย่าง Code ครับ
Code: Select all
With Sheets("Sheet2")
.Range("C:C").Find(What:=.Range("m2").Value, _
LookAt:=xlWhole).Resize(1, 9).Value = .Range("m2:u2").Value
End With
Re: ต้องการคัดลอกข้อมูลทั้งแถวมาวางไว้ในหัวข้อที่ตรงกันครับ
Posted: Tue Jul 28, 2020 12:35 pm
by yodpao.b
ขอแก้เพิ่มอีก ข้อครับ
1.JPG
จากรูป
ในระหว่าง c:c พอดีมีแถวแทรกอยู่ครับ ชึ่งมีตัวแปลเมื่อกัน
ต้องการกำหนดจุดเริ่มต้นถึงจุดสุดท้าย
code
With Sheets("Sheet2")
.Range("C6:C1000").Find(What:=.Range("m2").Value, _
LookAt:=xlWhole).Resize(1, 9).Value = .Range("m2:u2").Value
End With
จุดสิิ้นสุดคือ C1000 สามารถให้มันมองลงไปเรื่อยได้ไหมครับ เพราะข้อมูลจะเพิ่มมาเรื่อย
ผมลองใช้ .Range("C6:C")
ดีบัค ครับ
Re: ต้องการคัดลอกข้อมูลทั้งแถวมาวางไว้ในหัวข้อที่ตรงกันครับ
Posted: Tue Jul 28, 2020 1:18 pm
by snasui

คำว่า "ตัวแปร" ที่เป็น Variable สะกดด้วย ร. เรีอ ถ้าเขียนว่า "ตัวแปล" คือ Translator ครับ
จะให้มองไปเรื่อย ๆ โดยไม่ทราบว่าสิ้นสุดตำแหน่งใดก็ใช้
.range("c6:c" & .rows.count) ไปได้เลยครับ
Re: ต้องการคัดลอกข้อมูลทั้งแถวมาวางไว้ในหัวข้อที่ตรงกันครับ
Posted: Tue Jul 28, 2020 1:46 pm
by yodpao.b
ขอบคุณมากครับ
ไฟล์นี้เสร็จแล้วครับ รอเอาไปให้นายแก้ไขเพิ่มเติม
กำลังคิดอยู่ว่าให้เคอร์เซอร์เลื่อนไปหาตำแหน่งที่ต้องการ
ต้องเขียนอย่างไร
เลยเอา code เดิมที่ได้มาแก้ไข ใช้ได้เลยครับ
With Sheets("Sheet2")
.Range("C6:C1000").Find(What:=.Range("m2").Value, _
LookAt:=xlWhole).Select
End With
ขอบคุณครับ