Page 1 of 1
การ Match ข้อมูลระหว่าง 2 ชีท
Posted: Mon Feb 11, 2013 11:29 pm
by niwat2811
รบกวนสอบถามท่านผู้รู้เกี่ยวกับเรื่องการ Match ข้อมูลระหว่าง 2 ชีท
โดยที่ Sheet1 เป็นที่เก็บข้อมูล Sheet2 เป็นชีทที่ต้องการให้แสดงผล
โดยการเปรียบเทียบข้อมูลระหว่าง Column B ทั้ง 2 ชีท ถ้าข้อมูลเหมือนกัน
ให้นำข้อมูลจาก Sheet1 Column C และ Column D มาวางที่ Sheet2
แต่ถ้าไม่มีข้อมูลก็ให้เว้นว่างไว้ คำตอบที่ต้องการอยู่ที่ Sheet2 ครับ
Code อยู่ใน Module1 ชื่อว่า DataMatch ครับ
Re: การ Match ข้อมูลระหว่าง 2 ชีท
Posted: Tue Feb 12, 2013 7:24 am
by snasui

ลองดูตัวอย่างการปรับ Code ตามด้านล่างครับ
Code: Select all
Sub DataMatch()
Dim LR As Long, i As Long, ws1 As Worksheet, ws2 As Worksheet
Dim MatchVal As Long
Application.ScreenUpdating = False
Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")
With Sheets("Sheet2")
LR = ws2.Range("B" & Rows.Count).End(xlUp).Row
For i = 2 To LR
If IsNumeric(Application.Match(.Range("B" & i).Value, ws1.Columns("B"), 0)) Then
MatchVal = Application.Match(.Range("B" & i).Value, ws1.Columns("B"), 0)
.Range("C" & i).Resize(1, 2).Value = ws1.Range("C" & MatchVal).Resize(1, 2).Value
End If
Next i
End With
End Sub
Re: การ Match ข้อมูลระหว่าง 2 ชีท
Posted: Tue Feb 12, 2013 9:17 am
by niwat2811
แจ้งผลครับ Code ใช้งานได้ตรงตามความต้องการครับ
แต่สงสัยว่า MatchVal ตรงนี้มันคืออะไรครับ

Re: การ Match ข้อมูลระหว่าง 2 ชีท
Posted: Tue Feb 12, 2013 9:32 am
by snasui

คือผลลัพธ์ของ Statement นี้ครับ
Application.Match(.Range("B" & i).Value, ws1.Columns("B"), 0) ซึ่งเทียบได้กับผลของฟังก์ชั่น Match ธรรมดาใน Excel ครับ