จากไฟล์ที่แนบมา
ข้อ 1 ต้องการเรียกข้อมูลพัสดุที่มีอยู่ ในชีท Data ผ่าน Userform1 และ Listbox1 โดยใช้โค๊ด
Code: Select all
Private Sub UserForm_Initialize()
LoadAllData
TextBox1.SetFocus
End Sub
Sub LoadAllData()
LastRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
For ShRow = 1 To LastRow
For ListCol = 2 To 4
Me.ListBox1.AddItem
Me.ListBox1.List(ShRow - 1, ListCol - 2) = Sheet1.Cells(ShRow, ListCol).Value
Next ListCol
Next ShRow
End Sub
ต้องการให้ Listbox1 แสดงข้อมูลที่ดึงมา ตั้งแต่แถวที่ 2 จนถึงแถวสุดท้ายที่มีข้อมูล ส่วนแถวที่ไม่มีข้อมูลไม่ต้องดึงมา
ต้องปรับโค๊ดอย่างไรครับ
ข้อ 2 ต้องการดับเบิ้ลคลิก แถวที่ดึงมาแสดงใน Listbox1 เพื่อส่งข้อมูลในแถวนั้น (ทั้งสามคลอลัมน์)
ไปวางไว้ที่ Sheet Oder ตอนนี้ไปเฉพาะคลอลัมน์แรกเท่านั้น
โค๊ด
Code: Select all
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ActiveCell.Value = ListBox1.Value
' ListBox1.Value = ""
ActiveCell.Offset(1, 0).Select
End Sub
แต่หากใช้ Code นี้
Code: Select all
ActiveCell.Value = Application.Index(Sheets("Data").Range("ColBB"), ListBox1.ListIndex + 1)
ActiveCell.Offset(, 1).Value = Application.Index(Sheets("Data").Range("ColCC"), ListBox1.ListIndex + 1)
ActiveCell.Offset(, 2).Value = Application.Index(Sheets("Data").Range("ColDD"), ListBox1.ListIndex + 1)
ActiveCell.Offset(1, 0).Select
จะสามารถดึงไปวางได้ทั้งสามคลอลัมน์ แต่จะมีปัญหาตอนนี้ มีการค้นข้อมูลจาก Textbox1 (พิมพ์ตัวอักษรบางส่วน แล้ว Enter เช่น ปากกา ก็จะได้ข้อมูลปากกามาทั้งหมด) เมื่อได้ข้อมูลเฉพาะที่ต้องการแล้ว พอเลือกดับเบิ้ลคลิกไปแล้ว ข้อมูลที่นำไปวางในชีท จะไม่ตรงกับที่เราเลือก
จะปรับแก้ไขโค๊ดอย่างไรครับ
You do not have the required permissions to view the files attached to this post.