Xóa dòng (3 người xem)

  • Thread starter Thread starter minhlev
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

minhlev

A - Bờ - Cờ
Thành viên danh dự
Tham gia
2/7/07
Bài viết
420
Được thích
894
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.
 
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ạn tham khảo :VD :

If Range("A1") = 1 Then Range("A1").EntireRow.Delete

Thân!
 
Nếu có nhiều dữ liệu (đặc biệt là công thức) thì việc xoá dòng rất chậm.
Bạn có thể dùng Range().AutoFilter
 
Mr Okebab đã viết:
Bạn tham khảo :VD :

If Range("A1") = 1 Then Range("A1").EntireRow.Delete

Thân!
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.
 
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.

Bạn thử nhé :

Mã:
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

Thân!
 
Bạn tham khảo ở đây thử

/(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
 
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
Cảm ơn Sa tiên sinh nhiều. Em sửa lại ngay :


Code:
Mã:
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


Thân!
 
Chào anh Mr Okebab.
Cả hai đoạn code trên:
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​
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​
Tôi thử đều không chạy được.
Nhưng khi tôi chỉnh lại:
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
Thì chạy tốt.
Nhờ anh xem dùm.
 
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.

Đúng rồi, do thiếu biến i thôi.

Cảm ơn nhiều
 
Web KT

Bài viết mới nhất

Back
Top Bottom