bpremlatha,
First, since your image only shows two rows, neither of which would appear to satisfy the conditions of your code, it is unclear what that is trying to demonstrate. Or, is the image related to your comment:
But, starting from column 31 and row 54, the field content goes to next field.
?
In that case, I can't specifically tell you what is going wrong. However, I would advise the following:
Instead of consolidating the ranges, and deleting at the end, why not delete rows as you go along?
One of your challenges is that you are setting your counter to run from 1 to 1500 (to cover as many rows as you think you might need, which, in the case above, you would be caught in an infinite loop deleting empty rows. In this case, you might want to find the last row of populated data first (if your data is in a set order, such that there is always only one empty row between records, then, when you find two empty rows in consecutive order, you know you are at the end. Then, instead of working your way down your list, you would work your way up.
A little more complex, but it would allow you to see what was happening with each particular row as it was deleted so that you could better troubleshoot at that point.
Hope this made sense--but even more, I hope it helps.