Xin hỏi về code xoá dòng bị lỗi

Liên hệ QC

Xuân Linh

Thành viên mới
Tham gia
25/12/09
Bài viết
13
Được thích
0
Em có trang bảng tính, cột D là cột ghi số lượng hàng, nhưng trong cột đó có các số có giá trị bằng nhau. Sau khi em sort theo cột D thì có hai hàng liền nhau có giá trị bằng nhau. Em đã dùng đoạn code sau để xoá nhưng không được, mong các anh chị giải thích và sửa lại giùm, em cám ơn
PHP:
Sub XoaDong()
     On Error Resume Next
     n = [D65000].End(xlUp).Row
     For i = n To 1 Step -1
          If Range("D" & n) = Range("D" & n - 1) Then
               Rows(n - 1 & ":" & n).Delete
          End If
     Next
End Sub
 
Sub XoaDong()
On Error Resume Next
n = [D65000].End(xlUp).Row
For i = n To 1 Step -1
If Range("D" & n) = Range("D" & n - 1) Then
Rows(n - 1 & ":" & n).Delete
End If
Next
End Sub
Bạn xem lại kỹ ở chổ biến chính mà bạn sử dụng là n hay i nha. Sai ở chổ này đó.
 
Upvote 0
Em có trang bảng tính, cột D là cột ghi số lượng hàng, nhưng trong cột đó có các số có giá trị bằng nhau. Sau khi em sort theo cột D thì có hai hàng liền nhau có giá trị bằng nhau. Em đã dùng đoạn code sau để xoá nhưng không được, mong các anh chị giải thích và sửa lại giùm, em cám ơn
PHP:
Sub XoaDong()
     On Error Resume Next
     n = [D65000].End(xlUp).Row
     For i = n To 1 Step -1
          If Range("D" & n) = Range("D" & n - 1) Then
               Rows(n - 1 & ":" & n).Delete
          End If
     Next
End Sub
Hình như viết như thế này cũng chạy được
Private Sub xoadong()
On Error Resume Next
Application.ScreenUpdating = False
Dim n As Integer
Dim i As Integer
n = [D65000].End(xlUp).Row
For i = n To 1 Step -1
If Cells(i, 4).Value = Cells(i - 1, 4).Value Then
Rows(i - 1).Delete
End If
Next
Application.ScreenUpdating = True
End Sub

 
Upvote 0
Xin mạnh dạn có vài nhận xét

PHP:
Sub XoaDong()
     On Error Resume Next
     n = [D65000].End(xlUp).Row
     For i = n To 1 Step -1
          If Range("D" & n) = Range("D" & n - 1) Then
               Rows(n - 1 & ":" & n).Delete
          End If
     Next
End Sub
(*) Nên khai báo các biến cho tường minh; Ví dụ Dim nN As Long, Jj As Long

(*) Nếu dữ liệu trùng nhiều hơn 1 cặp (Như dữ liệu có đến 99 chữ cái "GPE" trong các hàng của cột 'D'), thì tìm cách khác, tuy Code có vẻ dài hơn, nhưng công việc sẽ nhanh hơn chăng?

(*) Cũng có cách nữa là gán các dòng thỏa điều kiện xóa vô biến kiểu Range; Cuối cùng xóa 1 lần một: Ai lại cứ lắc nhắc; Có khi máy biết nói, nó lại cự nự không chùng!

(*) . . .

:-= --=0 :-=
Chúc vui!
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn các anh chị đã giải thích. Em tìm thấy cái sai của minh rồi. Vì đang tập tành viết code nên còn nhiều bỡ ngỡ lắm, mong các anh chị hỗ trợ nhiều
Thân mến
 
Upvote 0
Web KT

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

Back
Top Bottom