Page 2 of 2

Re: ใช้ Vlookup ใน USER FORM

Posted: Wed Aug 27, 2014 10:10 am
by titus2014
snasui wrote::D แนบไฟล์ที่ได้ Update Code แล้วมาด้วย จะได้ดูต่อไปจากนั้นครับ


ผมใส่ เครื่องหมาย ' ข้ามไว้นะครับ เพราะมัน Error

Re: ใช้ Vlookup ใน USER FORM

Posted: Wed Aug 27, 2014 2:20 pm
by snasui
:D Code ที่มีปัญหาไม่ควร Mark เป็น Comment ให้เขียนแจ้งมาในที่นี้แทนว่าบรรทัดใดติดปัญหาครับ

สำหรับ Code ในไฟล์ที่แนบมายังไม่ได้ใส่บรรทัด End Select นอกจากนี้ยังไม่เข้าใจว่า Add.Visible = False ที่เขี่ยนไว้นั้น ต้องการจะทำอะไร เพราะบรรทัดนี้ก่อให้เกิดปัญหา Error ตามที่ถามมา หากไม่ได้ใช้ประโยชน์ให้ลบทิ้งไปครับ

สำหรับการทดสอบ Code ให้กดแป้น F8 เพื่อ Run ทีละ Step จะได้ทราบว่าปัญหาเกิดที่บรรทัดไหน หากเกิดปัญหาจะเกิดระบายสีเหลืองที่บรรทัดนั้้น ให้ยกบรรทัดนั้นมาถามจะได้เข้าถึงปัญหาโดยไวครับ

Re: ใช้ Vlookup ใน USER FORM

Posted: Thu Aug 28, 2014 9:42 am
by titus2014
snasui wrote::D Code ที่มีปัญหาไม่ควร Mark เป็น Comment ให้เขียนแจ้งมาในที่นี้แทนว่าบรรทัดใดติดปัญหาครับ

สำหรับ Code ในไฟล์ที่แนบมายังไม่ได้ใส่บรรทัด End Select นอกจากนี้ยังไม่เข้าใจว่า Add.Visible = False ที่เขี่ยนไว้นั้น ต้องการจะทำอะไร เพราะบรรทัดนี้ก่อให้เกิดปัญหา Error ตามที่ถามมา หากไม่ได้ใช้ประโยชน์ให้ลบทิ้งไปครับ

สำหรับการทดสอบ Code ให้กดแป้น F8 เพื่อ Run ทีละ Step จะได้ทราบว่าปัญหาเกิดที่บรรทัดไหน หากเกิดปัญหาจะเกิดระบายสีเหลืองที่บรรทัดนั้้น ให้ยกบรรทัดนั้นมาถามจะได้เข้าถึงปัญหาโดยไวครับ
ขอบคุณครับ อาจาร์ย์
ที่เขียน Add.Visible = False ผมเห็นตัวอย่างขอคนอื่น เลยลองเอามาใส่ค่า ดู ครับ แค่อยากรู้ความหมาของคำสั่งตัวนี้นะครับ

ตัวไฟล์ ผมลองกด F8 ตามอาจาร์ยบอกครับ รันผ่านหมด แต่ เงื่อนไข ไม่แสดง ครับ
ให้ตรวจสอบค่า
txtp ถ้ามีค่า 1 ให้แสดง txtlist.RowSouece = a
txtp ถ้ามีค่า 2 ให้แสดง txtlist.RowSouece = b
txtp ถ้ามีค่า 3 ให้แสดง txtlist.RowSouece = c

Code: Select all

Private Sub UserForm_Initialize()
Set a = Worksheets("DATA").Range("item1")
Set b = Worksheets("DATA").Range("item2")
Set c = Worksheets("DATA").Range("item3")
  If Val(txtp.Value) = 1 Then
     txtlist.RowSource = a
  ElseIf Val(txtp.Value) = 2 Then
   txtlist.RowSource = b
 ElseIf Val(txtp.Value) = 3 Then
   txtlist.RowSource = c
    Else
    End If

Re: ใช้ Vlookup ใน USER FORM

Posted: Thu Aug 28, 2014 3:38 pm
by niwat2811
ลองแบบนี้ดูครับ ว่าใช้ได้ตามต้องการไหม

Code: Select all

Private Sub txtp_Change()
With txtlist
    If txtp = 1 Then
        .RowSource = "item1"
    End If
    If txtp = 2 Then
        .RowSource = "item2"
    End If
    If txtp = 3 Then
        .RowSource = "item3"
    End If
End With
End Sub

Re: ใช้ Vlookup ใน USER FORM

Posted: Thu Aug 28, 2014 6:44 pm
by titus2014
niwat2811 wrote:ลองแบบนี้ดูครับ ว่าใช้ได้ตามต้องการไหม

Code: Select all

Private Sub txtp_Change()
With txtlist
    If txtp = 1 Then
        .RowSource = "item1"
    End If
    If txtp = 2 Then
        .RowSource = "item2"
    End If
    If txtp = 3 Then
        .RowSource = "item3"
    End If
End With
End Sub

ตรงตามความต้องการครับ
แต่ทำไหมใช่ With ครับ อธิบายหน่อยได้ไหม ครับ
ขอบคุณครับ

Re: ใช้ Vlookup ใน USER FORM

Posted: Thu Aug 28, 2014 8:30 pm
by snasui
titus2014 wrote:แต่ทำไหมใช่ With ครับ อธิบายหน่อยได้ไหม ครับ
:D ดูคำอธิบายใน Link นี้ครับ With...End With

Re: ใช้ Vlookup ใน USER FORM

Posted: Fri Aug 29, 2014 9:38 am
by titus2014
snasui wrote:
titus2014 wrote:แต่ทำไหมใช่ With ครับ อธิบายหน่อยได้ไหม ครับ
:D ดูคำอธิบายใน Link นี้ครับ With...End With

ขอบคุณครับ