This is a common problem when deleting rows. Imagine you are moving through your for loop one row at a time and deleting:
For cnt = 7 To dlt
Rows(cnt).EntireRow.Delete
cnt = cnt + 1
Next
You are on row 7 and you delete it. This shifts all of your rows up. Row 8 is now Row 7. You then increase your cnt
variable by 1 (to 8) and delete row 8. But you missed row 7, which was row 8... it's crazy bananas.
Instead, change your for loop to work backwards:
For cnt = dlt to 7 step -1
Rows(cnt).EntireRow.Delete
cnt = cnt - 1
Next
This way the row shifting doesn't affect your cnt
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…