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
:D กรุณาช่วยระบุบรรทัดที่ 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
:D เอาไว้ติดปัญหาแล้วค่อยถามครับ

ผมไม่เน้นเรื่อง 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
:D เรื่องเดียวกันให้ถามในกระทู้เดียวกัน ไม่ควรตั้งกระทู้ซ้ำ ยกเว้นเป็นคนละเรื่อง คำถามนี้ให้ไปดูในกระทู้ก่อนหน้านี้ครับ