katylove83
Thành viên hoạt động



- Tham gia
- 22/2/13
- Bài viết
- 166
- Được thích
- 9







b1 gõ công thức vàochào các anh chị
em muốn xóa dòng trong excel thỏa mản điều kiện khi 2 dòng tiếp theo không có dữ liệu thì xóa hết những dòng này
cám ơn
Option Explicit
Sub DeleteRows()
Dim Rng As Range, Cls As Range, dRg As Range
Set Rng = [f2].Resize([f2].CurrentRegion.Rows.Count).SpecialCells(xlCellTypeBlanks)
Set dRg = Rows("65500:65500")
For Each Cls In Rng
With Cls
If .Value = "" And .Offset(1).Value = "" And .Offset(, 1).Value = "" And .Offset(1, 1).Value = "" Then
Set dRg = Union(dRg, Cls.Resize(2).EntireRow)
End If
End With
Next Cls
dRg.Delete
End Sub


chào các anh chị
em muốn xóa dòng trong excel thỏa mản điều kiện khi 2 dòng tiếp theo không có dữ liệu thì xóa hết những dòng này
cám ơn
Sub XoaDong()
With [c3].SpecialCells(5).SpecialCells(4)
For i = 1 To .Areas.Count
If .Areas(i).Rows.Count > 1 Then .Areas(i).EntireRow.Delete
Next
End With
End Sub



cám ơn anh, code của anh ngắn em thích lắm, nhưng mà hình như nó báo lỗi, yêu cầu của bài này là xóa dòng nếu 2 dòng liên tiếp tại cột F và G là đều trống thì xóa 2 dòng này còn các dòng khác vẫn để nguyênNếu dùng VBA thì bạn thử code này
Mã:Sub XoaDong() With [c3].SpecialCells(5).SpecialCells(4) For i = 1 To .Areas.Count If .Areas(i).Rows.Count > 1 Then .Areas(i).EntireRow.Delete Next End With End Sub
cám ơn anh nhìu nhìuThêm 1 tham khảo cho bạn đây:
PHP:Option Explicit Sub DeleteRows() Dim Rng As Range, Cls As Range, dRg As Range Set Rng = [f2].Resize([f2].CurrentRegion.Rows.Count).SpecialCells(xlCellTypeBlanks) Set dRg = Rows("65500:65500") For Each Cls In Rng With Cls If .Value = "" And .Offset(1).Value = "" And .Offset(, 1).Value = "" And .Offset(1, 1).Value = "" Then Set dRg = Union(dRg, Cls.Resize(2).EntireRow) End If End With Next Cls dRg.Delete End Sub
cám ơn anh, code của anh ngắn em thích lắm, nhưng mà hình như nó báo lỗi, yêu cầu của bài này là xóa dòng nếu 2 dòng liên tiếp tại cột F và G là đều trống thì xóa 2 dòng này còn các dòng khác vẫn để nguyên
cám ơn


cám ơn anh, code của anh ngắn em thích lắm, nhưng mà hình như nó báo lỗi, yêu cầu của bài này là xóa dòng nếu 2 dòng liên tiếp tại cột F và G là đều trống thì xóa 2 dòng này còn các dòng khác vẫn để nguyên
cám ơn
cám ơn anh nhìu nhìu
Sub XoaDong()
On Error Resume Next
With [f3].Resize([c65000].End(3).Row, 2)
.SpecialCells(2).EntireRow.Hidden = True
.SpecialCells(12).EntireRow.Delete
.EntireRow.Hidden = False
End With
End Sub



cám ơn anh em làm ok rùiXin lỗi vì không test kỹ.
Giờ tôi mới hiểu vì sao có 2 dòng trống. Vậy Bạn thay code này thử xem (code không dùng vòng lặp luôn).
Mã:Sub XoaDong() On Error Resume Next With [f3].Resize([c65000].End(3).Row, 2) .SpecialCells(2).EntireRow.Hidden = True .SpecialCells(12).EntireRow.Delete .EntireRow.Hidden = False End With End Sub
Thực tế khi gặp trường hợp này tôi thường làm thủ công. Thao tác như mô tả trong code này.