Hi,
If you want to pre-specify the range to be used, you should use
Code:
Range("A23:A32")
rather than
Range("A23:A32" & lr)
although unlikely this is the reason for no yellow showing.
I guess the term "blank" in Excel has a bit of flexibility depending in who is using it and what is really in the cell(s).
When I tested that code I just used simple formulas such as
=IF(1=2,"","")
where a "blank" cell is one that displays "".
The code worked OK for me in such case, because of the
line.
However there's other ways of getting blank cells, such as if you use the formula =IF(1=2,char(160),char(160)) or similar, such as just =Char(160).
The non-printing character Char(160) (or Chr(160) in VBA) is one that sometimes causes problems when looking at a blank cell it is also assumed to be empty.
However, my short answer is that my code as posted only looks at one version of a "blank" cell. I just don't have time for a while to look at the problem more closely for a while, but if you don't get other answers then I'll have another look at it.
As a very quick attempt, you might rerun the code with the relevant line changed to
Code:
If Len(e) = 0 Or e=Chr(160)Then Rows(e.Row).Interior.Color = vbYellow
although that may or may not work for you.