Nhờ các anh, chị giúp đỡ. Tôi đang bắt đầu tiếp cận VBA. Tôi muốn xoá 1 dòng trong xls khi thoả mãn 1 dk nào đó mà không biết viết trong VBA ntn. Nhờ các anh, chị chỉ bảo giùm.
Bác Okebab ơi. Sao em thử công thức trên máy ở nhà thì được còn tại cq thì báo lỗi "Object doesn't support this property or method". Thêm vào đó nếu em muốn xoá dòng bất kỳ thì làm cách nào. VD:Mr Okebab đã viết:Bạn tham khảo :VD :
If Range("A1") = 1 Then Range("A1").EntireRow.Delete
Thân!
minhlev đã viết:Bác Okebab ơi. Sao em thử công thức trên máy ở nhà thì được còn tại cq thì báo lỗi "Object doesn't support this property or method". Thêm vào đó nếu em muốn xoá dòng bất kỳ thì làm cách nào. VD:
.......Cột A.....B.....
Dòng 1....1.....1
Dòng 2....2.....0
Dòng 3....2.....1
Code:
Dim i As Integer
Do
i = 1
If Cells(i, 2).Value <> "" And Cells(i, 2).Value = 0 Then
Range(i, 1).EntireRow.Delete
End If
Loop
i = i + 1
End Sub
Khi em chạy thì báo lỗi. Bác chỉnh giùm em với.
Dim i As Integer
For i = 1 To Cells(65500, 1).End(xlUp).Row
If Cells(i, 2).Value <> "" And Cells(i, 2).Value = 0 Then Cells(i, 1).EntireRow.Delete
Next
Cảm ơn Sa tiên sinh nhiều. Em sửa lại ngay :SA_DQ đã viết:/(hông ~ báo lỗi mà có khi không xóa ~ dòng thõa điều kiện, nếu nó nằm ngay dưới dòng vửa bị xóa
Phw án đề ra là: Duyệt từ dưới lên, gặp dòng thõa Đ/K thì xóa
Phw án 2: Gộp các dòng thõa Đ/k lại nhờ phw thức Union & cuối cùng là 1 lần xóa
(Bạn nên tìm kiếm, VD từ khóa 'Delete Rows')
http://giaiphapexcel.com/forum/showthread.php?t=1287&highlight=union
Dim i As Integer
For i= Cells(65500, 1).End(xlUp).Row to 1 Step -1
If Cells(i, 2).Value <> "" And Cells(i, 2).Value = 0 Then Cells(i, 1).EntireRow.Delete
Next
Dim i As Integer
For i = 1 To Cells(65500, 1).End(xlUp).Row
If Cells(i, 2).Value <> "" And Cells(i, 2).Value = 0 Then Cells(i, 1).EntireRow.Delete
Next
Tôi thử đều không chạy được.Dim i As Integer
For Cells(65500, 1).End(xlUp).Row to 1 Step -1
If Cells(i, 2).Value <> "" And Cells(i, 2).Value = 0 Then Cells(i, 1).EntireRow.Delete
Next
Thì chạy tốt.Sub xoa()
Dim i
For i = 65500 To 1 Step -1
If Cells(i, 2).Value <> "" And Cells(i, 2).Value = 0 Then Cells(i, 1).EntireRow.delete
Next
End Sub
voda đã viết:Chào anh Mr Okebab.
Cả hai đoạn code trên:
Tôi thử đều không chạy được.
Nhưng khi tôi chỉnh lại:
Thì chạy tốt.
Nhờ anh xem dùm.