Trong code Sort thông báo dòng cuối là 177, nhưng khi chạy code Sort thì chạy vượt qua dòng 177

Liên hệ QC

AnhThu-1976

Thành viên tích cực
Tham gia
17/10/14
Bài viết
1,058
Được thích
170
Em nhờ Thầy cô và các anh chị tìm chổ sai như sau:
Trong code Sort thông báo dòng cuối là 177, nhưng khi chạy code Sort thì chạy vượt qua dòng 177
Vui lòng chạy thử code trong file đính kèm, em cảm ơn!
 

File đính kèm

  • Hoi-Sort_TH.xlsm
    90.1 KB · Đọc: 6
Thế này nguy hiểm quá.
Lấy ngay biến i là giá trị vừa tìm được làm biến chạy (counter) của vòng lặp For Next thì hỏng bét rồi còn đâu.

Thử như hình xem ra cái gì.

1616037876725.png

--------
Khai báo thêm một biến dongCuoi
Dim dongCuoi as Long
dongCuoi = Cells.Find("*", Rng(1, 1), , , xlByRows, xlPrevious).Row

Trong For Next thì đổi lại:
For i = 9 To dongCuoi
 
Upvote 0
Sau khi ra khỏi vòng lặp thì i vượt quá dòng cuối. Thử như sau
Mã:
    For i = 9 To i
        If Cells(i, 27) = "" Then
            Range("AA" & i).Interior.ColorIndex = 3
        End If
    Next i
    Msgbox i
 
Upvote 0
Sau khi ra khỏi vòng lặp thì i vượt quá dòng cuối. Thử như sau
Mã:
    For i = 9 To i
        If Cells(i, 27) = "" Then
            Range("AA" & i).Interior.ColorIndex = 3
        End If
    Next i
    Msgbox i
Vậy thì vòng lặp dưới em cho i-1
Mã:
For i = 9 To i - 1
        If Cells(i, 27) = "" Then
            MsgBox Range("AA" & i).Address & " trôìng"
            Exit Sub
        End If
    Next i
 
Upvote 0
Web KT

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

Back
Top Bottom