Page 1 of 1
vlookup in userform
Posted: Fri Jul 13, 2018 3:36 pm
by Leng
Code: Select all
Private Sub TextBox5_AfterUpdate()
If WorksheetFunction.CountIf(Sheets("Data").Range("A:D"), Me.TextBox5.Value) = 0 Then
Me.TextBox5.Value = ""
End If
With Me
.TextBox6 = Application.WorksheetFunction.VLookup(CLng(Me.TextBox5), Sheets("Data").Range("lookupdata"), 2, 0)
.TextBox7 = Application.WorksheetFunction.VLookup(CLng(Me.TextBox5), Sheets("Data").Range("lookupdata"), 3, 0)
.TextBox8 = Application.WorksheetFunction.VLookup(CLng(Me.TextBox5), Sheets("Data").Range("lookupdata"), 4, 0)
End With
If Me.TextBox5.Text = "" Then Exit Sub
emptyrow = WorksheetFunction.CountA(Range("A:A")) + 1
Worksheets("IN").Cells(emptyrow, 1).Value = TextBox1.Value
Worksheets("IN").Cells(emptyrow, 2).Value = TextBox2.Value
Worksheets("IN").Cells(emptyrow, 3).Value = TextBox4.Value
Worksheets("IN").Cells(emptyrow, 4).Value = ComboBox1.Value
Worksheets("IN").Cells(emptyrow, 5).Value = TextBox5.Value
Worksheets("IN").Cells(emptyrow, 6).Value = TextBox6.Value
Worksheets("IN").Cells(emptyrow, 7).Value = TextBox7.Value
Worksheets("IN").Cells(emptyrow, 8).Value = TextBox8.Value
Worksheets("IN").Cells(emptyrow, 9).Value = TextBox9.Value
End Sub
Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox5.Value <> "" Then
Cancel = True
TextBox5.Text = ""
End If
End Sub
สอบถามครับทำไม่โค๊ดถึง error ทั้งๆที่ตอนสแกนไม่มีปัญหาแต่พอกด ปุ่มเซฟหรือปุ่มอื่นก็ตาม โค๊ดจะ error ทันที รบกวนช่วยดูหน่อยครับ
Re: vlookup in userform
Posted: Fri Jul 13, 2018 6:59 pm
by snasui

กรุณาช่วยระบุบรรทัดที่ Error และแจ้ง Error ที่โปรแกรมฟ้องมาด้วยเพื่อจะได้เข้าถึงปัญหาได้โดยไวครับ
Re: vlookup in userform
Posted: Sat Jul 14, 2018 8:05 am
by Leng
ตอนนี้ทำได้แล้วครับ
Code: Select all
Private Sub TextBox5_AfterUpdate()
If Me.TextBox5.Text = "" Then Exit Sub
emptyrow = WorksheetFunction.CountA(Range("A:A")) + 1
Worksheets("IN").Cells(emptyrow, 1).Value = TextBox1.Value
Worksheets("IN").Cells(emptyrow, 2).Value = TextBox2.Value
Worksheets("IN").Cells(emptyrow, 3).Value = TextBox4.Value
Worksheets("IN").Cells(emptyrow, 4).Value = ComboBox1.Value
Worksheets("IN").Cells(emptyrow, 5).Value = TextBox5.Value
Worksheets("IN").Cells(emptyrow, 6).Value = TextBox6.Value
Worksheets("IN").Cells(emptyrow, 7).Value = TextBox7.Value
Worksheets("IN").Cells(emptyrow, 8).Value = TextBox8.Value
Worksheets("IN").Cells(emptyrow, 9).Value = TextBox9.Value
If WorksheetFunction.CountIf(Sheets("Data").Range("A:D"), Me.TextBox5.Value) = 0 Then
Me.TextBox5.Value = ""
End If
With Me
.TextBox6 = Application.WorksheetFunction.VLookup(CLng(Me.TextBox5), Sheets("Data").Range("lookupdata"), 2, 0)
.TextBox7 = Application.WorksheetFunction.VLookup(CLng(Me.TextBox5), Sheets("Data").Range("lookupdata"), 3, 0)
.TextBox8 = Application.WorksheetFunction.VLookup(CLng(Me.TextBox5), Sheets("Data").Range("lookupdata"), 4, 0)
End With
End Sub
Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox5.Value <> "" Then
Cancel = True
TextBox5.Text = ""
End If
End Sub
ผมอยากให้โค๊ดสั้นกว่านี้ครับมีวีธีไหนไหมครับ
Re: vlookup in userform
Posted: Sat Jul 14, 2018 8:54 am
by snasui

เอาไว้ติดปัญหาแล้วค่อยถามครับ
ผมไม่เน้นเรื่อง Code สั้นแต่เน้นที่ทำงานได้ อ่านเข้าใจได้ แก้ไขต่อยอดได้เอง ยกเว้นว่าเป็น Code ยาวมากจนเกิดปัญหาเช่นทำงานช้าครับ
Re: vlookup in userform
Posted: Sat Jul 14, 2018 9:22 am
by Leng
ปัญหาคือพอไม่มีข้อมูลในชีท data จะขึ้น error ครับ และจะเด้งมาหน้าโค๊ดเลยอยากรบกวนอาจารช่วยหน่อยครับถ้าไม่มีข้อมูลอยากให้ขึ้นว่า
"กรุณาตรวจสอบข้อมูล"
Re: vlookup in userform
Posted: Sat Jul 14, 2018 9:29 am
by snasui

เรื่องเดียวกันให้ถามในกระทู้เดียวกัน ไม่ควรตั้งกระทู้ซ้ำ ยกเว้นเป็นคนละเรื่อง คำถามนี้ให้ไปดูในกระทู้ก่อนหน้านี้ครับ