ngothanhluan
Thành viên chính thức


- Tham gia
- 25/6/13
- Bài viết
- 70
- Được thích
- 3
Bạn thử dùng code này xem:Nhờ mọi người xem giúp file, mình một code nhưng ở sheet 2 khi xóa 1 ô ở vùng màu vàng thì nó lại delete mất 2 dòng, còn ở sheet 3 thì chỉ có 1, anh chị xem giúp mình với.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim EmptyRange As Range, FindRange As Range
Dim LastRow As Long
LastRow = Range("D65536").End(xlUp).Row
Set FindRange = Range("D8:D" & LastRow)
If Not Intersect(FindRange, Target) Is Nothing Then
Application.EnableEvents = False
Application.ScreenUpdating = False
For Each EmptyRange In FindRange
If EmptyRange = "" Then
EmptyRange.Offset(, -1).Resize(, 7).Delete 2
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub
Sao tôi test lại, nó vẫn đúng mà bạn? Tôi xóa 1 ô vàng hay nhiều ô, nó vẫn chạy đúng?Cảm ơn bạn, mình làm được rồi, nhưng mình vẫn thắc mắc không biết code kia mình viết bị lỗi chỗ nào, anh chị nào có thể làm sáng tỏ vấn đề đó giúp mình không. Để cho tiện mình xin up đoạn code đó lên như sau:
Private Sub Worksheet_change(ByVal Target As Excel.Range)
On Error Resume Next
Dim vung3, vung_i, vung_i1, vung_i2 As Range
Application.EnableEvents = False
Application.ScreenUpdating = False
Set vung_i = Range("D1").Offset(Range("J1") - 2, 0)
Set vung3 = Range("D8", vung_i)
If Not Intersect(vung3, Target) Is Nothing Then
If Target = "" Then
Set vung_i1 = Target.Offset(0, -1)
Set vung_i2 = Target.Offset(0, 5)
Range(vung_i1, vung_i2).Delete Shift:=xlUp
End If
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub