Page 1 of 1
Macro: ค้นหา HN แล้วโชว์ค่าใน ListBox
Posted: Tue Jun 23, 2020 4:39 pm
by wisitsakbenz
เรียน สอบถามอาจารย์ครับ
ใส่เลข HN กด Search แล้วให้โชว์ค่า HN ทีั่ต้องการใน ListBox ไม่ทราบว่าต้องปรับ Code อย่างไรครับ ขอบคุณครับ
Re: Macro: ค้นหา HN แล้วโชว์ค่าใน ListBox
Posted: Tue Jun 23, 2020 8:50 pm
by snasui

Code นั้นเป็นของเดิมที่ผมเขียนเอาไว้เป็นตัวอย่าง กรุณาปรับใช้กับงานนี้เสียก่อน ติดแล้วค่อยสอบถามกันต่อครับ
ตัวอย่างการใช้
ListFillRange ของ ListBox ศึกษาได้จากที่นี่ครับ
https://stackoverflow.com/questions/227 ... tfillrange
Re: Macro: ค้นหา HN แล้วโชว์ค่าใน ListBox
Posted: Thu Jun 25, 2020 9:33 am
by wisitsakbenz
ขอบคุณครับอาจารย์ snasui
Re: Macro: ค้นหา HN แล้วโชว์ค่าใน ListBox
Posted: Thu Jun 25, 2020 11:30 am
by wisitsakbenz
สอบถามเพิ่มเติมคับอาจารย์ snasui
1.ถ้าต้องการให้ Reference No. มาโชว์ ต้องปรับ Code อย่างไรครับ
2.ถ้าต้องการคลิกค่าใน ListBox1 แล้วทำการคลิกปุ่ม Delete ข้อมูลที่คลิก Row ใน Sheet "Data" จะหายไป ต้องปรับ Code อย่างไรครับ ขอบคุณครับ
Code: Select all
Sub Button3_Click()
Dim i, lastrow As Long
lastrow = Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row
If MsgBox("Are you sure you want to delete the row?", vbYesNo + vbQuestion, "Delete row") = vbYes Then
'Other code
Dim temp As Variant
For i = 1 To lastrow
If Cells(i, 6) = ListBox1.List(ListBox1.ListIndex) Then
If Cells(i + 1, 2).Value <> "" Then
temp = Range(Cells(i + 1, 2), Cells(Rows.Count, 2).End(xlUp)).Resize(, 2)
Range(Cells(i, 6), Cells(Rows.Count, 3).End(xlUp)).ClearContents
Cells(i, 6).Resize(UBound(temp, 1), 2).Value = temp
Else
Range(Cells(i, 6), Cells(Rows.Count, 3).End(xlUp)).ClearContents
End If
Exit For
End If
Next i
'Other code
End If
End Sub
Re: Macro: ค้นหา HN แล้วโชว์ค่าใน ListBox
Posted: Thu Jun 25, 2020 11:02 pm
by snasui

ผมลองรันแล้วพบว่า Code ยังติดที่บรรทัดนี้
If Cells(i, 6) = ListBox1.List(ListBox1.ListIndex) Then ไม่ทราบว่าต้องการจะทำอะไรก่อนที่จะ Delete กรุณาลำดับการทดสอบมาให้ด้วยจะได้เข้าถึงปัญหาเดียวกัน
ในส่วนของการ Delete ก็ควรจะเขียนมาเองก่อนด้วยครับ
Re: Macro: ค้นหา HN แล้วโชว์ค่าใน ListBox
Posted: Fri Jun 26, 2020 8:53 am
by wisitsakbenz
เรียน อาจารย์ snasui
ช่วยอธิบาย Code นี้หน่อยครับ ว่าคืออะไร พอดีผมไม่ค่อยมีความรู้เรื่อง VBA เท่าไหร่ครับ ขอบคุณครับ
Code: Select all
For i = 1 To lastrow
If Cells(i, 6) = ListBox1.List(ListBox1.ListIndex) Then
If Cells(i + 1, 2).Value <> "" Then
temp = Range(Cells(i + 1, 2), Cells(Rows.Count, 2).End(xlUp)).Resize(, 2)
Range(Cells(i, 6), Cells(Rows.Count, 3).End(xlUp)).ClearContents
Cells(i, 6).Resize(UBound(temp, 1), 2).Value = temp
Else
Range(Cells(i, 6), Cells(Rows.Count, 3).End(xlUp)).ClearContents
End If
Exit For
End If
Next i
Re: Macro: ค้นหา HN แล้วโชว์ค่าใน ListBox
Posted: Fri Jun 26, 2020 3:28 pm
by wisitsakbenz
เรียนอาจารย์ครับ
วิธีการคือ
1.ใส่เลข HN แล้วคลิก Search
2.คลิกข้อมูลที่ต้องการลบ ใน ListBox1
3.คลิกปุ่ม Delete เพื่อต้องการลบข้อมูล
ผมลองปรับ Code แล้ว มันไม่มีอะไรเกิดขึ้น ไม่แน่ใจว่าต้องปรับ Code อย่างไรครับ ขอบคุณครับ
Code: Select all
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row
If Cells(i, 1) = ListBox1.List(ListBox1.ListIndex) Then
Rows(i).Select
Selection.Delete
End If
Next i
End Sub
Re: Macro: ค้นหา HN แล้วโชว์ค่าใน ListBox
Posted: Fri Jun 26, 2020 10:08 pm
by snasui

ตัวอย่างการปรับ Code ครับ
Code: Select all
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To Sheets("Preview").Range("A" & Rows.Count).End(xlUp).Row
If Sheets("Preview").Cells(i, 1).Value = ListBox1.List(ListBox1.ListIndex) Then
Sheets("Preview").Rows(i).EntireRow.Delete
End If
Next i
End Sub
Re: Macro: ค้นหา HN แล้วโชว์ค่าใน ListBox
Posted: Sun Jun 28, 2020 1:59 pm
by wisitsakbenz
เรียนอาจารย์ snasui
ได้แล้วครับ ขอบคุณมากเลยครับ