Page 1 of 1

การใช้ VB ลบข้อมูลในตาราง

Posted: Thu Feb 02, 2012 3:51 pm
by yodpao.b
การใช้ VB ลบข้อมูลในตาราง
ผมมีเอกสาร 2 หน้า ต้องการ ลบใบเลขที่ใบวัสดุที่ GP-2555-00002
ผมได้ลองเขียน code แล้ว มันลบได้หน้าเดียว code ที่ใช้อยู่ด้านล่าง
เอกสารที่หมายถึงคือ หน้า DataReimbursement และหน้า DataEachUse

Code: Select all

Private Sub CommandButton3_Click()
    Range("AB7") = Sheets("CalPrint").Range("B5")
On Error Resume Next
        If MsgBox("   ·èÒ¹µéͧ¡Òà  ź   ¢éÍÁÙŹÕéãªèËÃ×ÍäÁè ?   ", vbYesNo + vbQuestion, "  â»Ãá¡ÃÁ¡ÒÃàºÔ¡¨èÒÂËÅÍ´ T5   ") = vbYes Then
                Sheets("DataEachUse").Select
                Range("C11").Select
                    Do While True
                            If ActiveCell.Value = Range("AB7") Then
                                    ActiveCell.Offset(0, 0).EntireRow.Delete
                                    Exit Sub
                            End If
                                ActiveCell.Offset(1, 0).Select
                        Loop
                
                Sheets("DataReimbursement").Select
                Range("C11").Select
                    Do While True
                            If ActiveCell.Value = Range("AB7") Then
                                    ActiveCell.Offset(0, 0).EntireRow.Delete
                                    Exit Sub
                            End If
                                ActiveCell.Offset(1, 0).Select
                        Loop
                End If
End Sub

Re: การใช้ VB ลบข้อมูลในตาราง

Posted: Thu Feb 02, 2012 4:36 pm
by snasui
:D ที่ลบได้หน้าเดียวเพราะไปสั่ง Exit Sub ไว้ที่ Code ด้านล่าง ให้ลองเปลี่ยนเป็น Exit Do หากต้องการลบเพียงบรรทัดเดียว หรือลบออกไป เพื่อให้สามารถทำงานใน Code ที่อยู่ด้านล่างต่อไปครับ

Code: Select all

 Do While True
    If ActiveCell.Value = Range("AB7") Then
        ActiveCell.Offset(0, 0).EntireRow.Delete
        Exit Sub '<== Change to "Exit Do"
     End If
     ActiveCell.Offset(1, 0).Select
Loop

Re: การใช้ VB ลบข้อมูลในตาราง

Posted: Thu Feb 02, 2012 11:00 pm
by yodpao.b
เปลี่ยนแล้วครับ ผลที่ได้ โปรแกรม eeror ครับ

Re: การใช้ VB ลบข้อมูลในตาราง

Posted: Thu Feb 02, 2012 11:20 pm
by snasui
:D ช่วยจับภาพ Error ที่ว่ามาด้วยครับ

ถ้า Error เนื่องจากการ Loop ไปเรื่อย ๆ ไม่ได้อยู่ที่การปรับ Code ที่ผมให้ไปครับ ต้องไปดูเรื่อง Loop ว่าเขียนถูกต้องหรือไม่

การเขียน Loop ต้องระบุให้ชัดว่า Loop เนื่องจากสาเหตุใด

Statement ==> Do While True สำหรับกรณีทำนองเดียวกันนี้ผมเปลี่ยนให้หลายรอบแต่เห็นยังใช้อยู่เหมือนเดิม Code ด้านบนผมก็ Copy มาเฉย ๆ เลยเกิดความสงสัยอยากทราบเป็นความรู้ว่าต้องการจะสื่อความหมายว่าอย่างไรครับ :mrgreen:

ยกตัวอย่างเช่น กรณีมีการ Loop เมื่อ Active Cell ไม่เท่ากับค่าว่างก็ควรระบุลงไปว่า

Do While ActiveCell <> "" เมื่อเจอค่าว่างจะได้หยุด Loop เป็นต้น :P