Page 1 of 1
VBA_Delete Rows [Not Entire Rows]
Posted: Tue May 28, 2019 2:55 pm
by imomo17
รบกวนขอสอบถามค่ะ พอดีมีข้อมูลที่ต้องการให้ Delete row ที่มียอดใน Column L เป็น 0
โดยสามารถลบได้แล้วตามเงื่อนไข แต่ต้องการเพิ่มโค้ด โดยให้ลบเพียง Column G ถึง U เท่านั้น ไม่ใช่ลบทั้งแถว
เนื่องจากต้องการคงข้อมูลหลังจาก Column W ไว้ค่ะ รบกวนแนะนำด้วยค่ะ
ไฟล์ตัวอย่างตามเอกสารแนบค่ะ
ขอบคุณค่ะ
Re: VBA_Delete Rows [Not Entire Rows]
Posted: Tue May 28, 2019 3:22 pm
by niwat2811
ลองตามนี้ดูครับว่าได้ตามต้องการไหม
Code: Select all
Sub test()
Dim i As Integer, lr As Long
Application.ScreenUpdating = False
lr = Range("G" & Rows.Count).End(xlUp).Row
For i = lr To 5 Step -1
If Range("L" & i).Value = 0 Then
Range("G" & i).Resize(1, 15).Delete Shift:=xlUp
End If
Next i
Application.ScreenUpdating = True
End Sub
Re: VBA_Delete Rows [Not Entire Rows]
Posted: Tue May 28, 2019 4:34 pm
by imomo17
ใช้ได้เลยค่ะ ขอบคุณมากค่ะ
รบกวนอธิบายโค้ด 2 บรรทัดนี้เพิ่มเติมให้หน่อยค่ะ ว่าหมายถึงการทำงานอย่างไรคะ
Code: Select all
Application.ScreenUpdating = False
Code: Select all
Range("G" & i).Resize(1, 15).Delete Shift:=xlUp
ขอบคุณค่ะ
Re: VBA_Delete Rows [Not Entire Rows]
Posted: Tue May 28, 2019 6:40 pm
by snasui
imomo17 wrote: Tue May 28, 2019 4:34 pm
Application.ScreenUpdating = False

หมายถึงให้หน้าจอหยุดวูบวาบเมื่อ Code กำลังทำงานครับ
imomo17 wrote: Tue May 28, 2019 4:34 pm
Range("G" & i).Resize(1, 15).Delete Shift:=xlUp
หมายถึงให้ขยายเซลล์ในคอลัมน์ G บรรทัดที่ i โดยไปทางขวา 15 คอลัมน์แล้วลบทิ้งโดยให้ขยับเซลล์ด้านล่างขึ้นด้านบน
Re: VBA_Delete Rows [Not Entire Rows]
Posted: Wed May 29, 2019 8:15 am
by imomo17
เข้าใจแล้วค่ะ ขอบคุณมากๆค่ะ
