Sub DelNULL()
With Application
.ScreenUpdating = False
.EnableEvents = False
With Me.UsedRange
For i = .Rows.Count To 1 Step -1
If WorksheetFunction.Sum(.Rows(i)) = 0 Then
.Rows(i).EntireRow.Delete
End If
Next
End With
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
- Thêm dòng Dim i as Long ở đầu codeKhi chạy báo lỗi "invalid use of me keyword"
Sub ktra()
Dim dau As String, vung0 As Range
With Sheet2.UsedRange
Set vung0 = .Find(0, , , , xlByRows, xlNext, , , False)
If Not vung0 Is Nothing Then
dau = vung0.Address
Do
Set vung0 = .FindNext(vung0)
vung0.Clear
Loop While Not vung0 Is Nothing And vung0.Address <> dau
End If
End With
End Sub
Sub DelNULL()
Dim i As Long, j As Long
With Application
.ScreenUpdating = False
.EnableEvents = False
With ActiveSheet.UsedRange
For i = .Rows.Count To 1 Step -1
For j = 1 To .Columns.Count
If Not IsNumeric(.Cells(i, j)) Then GoTo Exit_For
Next
If WorksheetFunction.Sum(.Rows(i)) = 0 Then
.Rows(i).EntireRow.Delete
End If
Exit_For:
Next
End With
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
Private Sub dNul(selRange As Range)
Dim i As Long, j As Long
With Application
.ScreenUpdating = False
.EnableEvents = False
With selRange
For i = .Rows.Count To 1 Step -1
For j = 1 To .Columns.Count
If Not IsNumeric(.Cells(i, j)) Then GoTo Exit_For
Next
If WorksheetFunction.Sum(.Rows(i)) = 0 Then
.Rows(i).EntireRow.Delete
End If
Exit_For:
Next
End With
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
Sub DelNULL()
Call dNul(Selection)
End Sub
Ý của bạn là, nếu ô nào có giá trị = 0 thì xóa số 0 đi ấy à (kể cả ô công thức có kết quả = 0)Đã thử có vẻ ổn nhưng chưa chính thức áp dụng vào
Nhờ bạn thêm phần xóa số 0 trong 1 vùng đưọc chỉ định.
Cám ơn!
Nhờ các bạn viết dùm sub xóa những dòng có giá trị bằng 0.
Cảm ơn!
Sub Xoa0()
On Error Resume Next
ActiveSheet.UsedRange.Replace "0", "", 1
End Sub
Sub XoaRong()
On Error Resume Next
With ActiveSheet.UsedRange
.Replace "0", "", 1
.SpecialCells(2).EntireRow.Hidden = 1
.SpecialCells(12).EntireRow.Delete
.EntireRow.Hidden = 0
End With
End Sub
Tôi nghĩ xóa số 0 là được rồi cần gì phải xóa dòng.
Mã:Sub XoaRong() On Error Resume Next With ActiveSheet.UsedRange .Replace "0", "", 1 .SpecialCells(2).EntireRow.Hidden = 1 .SpecialCells(12).EntireRow.Delete .EntireRow.Hidden = 0 End With End Sub
Dữ liệu trích ra để xem nên thường là paste/value nên không có công thứcÝ của bạn là, nếu ô nào có giá trị = 0 thì xóa số 0 đi ấy à (kể cả ô công thức có kết quả = 0)