Мне представляется, что следует взять .Row от последней ячейки и в цикле с шагом -1 перебрать строки Rows() от последней к первой применяя .Find если будет находится ячейка с соответствующим кодом .Interior.ColorIndex то .delete
Надо будет попробовать как-нибудь.
Удачи!