snasui wrote:
Code นั้นไม่ได้ใบ้ครับ ต้องนำไปใส่ตามนั้น
ส่วนที่บอกว่าไม่ได้ ยังติดอะไร ช่วยอธิบายรายละเอียดพร้อมวิธีทดสอบให้เกิดปัญหาเช่นนั้นมาด้วยครับ
Code: Select all
Private Sub CommandButton1_Click()
Dim LookFor As Range
Dim Rng As Range
Dim ColAmount As Integer
Dim ColName As Integer
Dim Amount As Variant
Dim Name As Variant
Dim rAll As Range
Dim r As Range
Set LookFor = Sheets("Sheet2").Range("A1")
Set Rng = Sheets("Data").Columns("A:C")
With Sheets("Sheet2")
Set rAll = .Range("A1", .Range("A" & Rows.Count).End(xlUp))
End With
ColName = 2
ColAmount = 3
On Error Resume Next
For Each r In rAll
With Application
'Amount = Application.VLookup(r, Rng, ColAmount, 0)
'Name = Application.VLookup(r, Rng, ColName, 0)
Amount = .Index(Rng.Offset(0, 2).Resize(, 1), .Match(r, Rng.Resize(, 1), 0))
Name = .Index(Rng.Offset(0, 1).Resize(, 1), .Match(r, Rng.Resize(, 1), 0))
End With
If IsError(Amount) Then
MsgBox r.Offset(0, 0) & " ไม่มียอดเงินในฐานข้อมูล"
Else
r.Offset(0, 2) = Amount
r.Offset(1, 2) = Amount
End If
If IsError(Name) Then
'MsgBox r.Offset(0, 0) & " ไม่มีชื่อลูกค้าในฐานข้อมูล"
'r.Offset(0, 0) = "" 'ทำให้ข้อมูลในบรรทัดสุดใน Colum A เป็น ว่าง
'r.Offset(0, 0).Activate
Else
r.Offset(0, 1) = Name
r.Offset(1, 1) = Name
End If
Next r
On Error GoTo 0
End Sub
ผมเอา Code ที่อาจารย์ให้ไปใส่แทน Code Vlookup ครับ
แล้วผมก็ใส่ เลข 12345 ที่ A1 แล้วกดปุ่ม
ข้อมูลที่ต้องการควรจะเป็น
12345 นาย ก. 100
นาย ก. 250
นาย ก. 300
แต่มันออกแค่
12345 นาย ก. 100 แค่นั้นครับ