Here are my two cents. I would drop the idea of using SpecialCells
on whole columns altogether. If you want to go with SpecialCells
then atleast create a Range
within the BM
column first to use it on. If any column exceeds the rows of interest you'll end up with values in places you really don't want (formulas in your case).
Here is a small example spanning A1:C5
:

Our area of interest is column B:B
where, if empty, we need the values from column C:C
When we run code using SpecialCells
, for example:
Columns("B:B").SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=RC3"
We will end up with:

What we see is that SpecialCells
makes use of UsedRange
(as @Peh rightfully mentioned in the comment section) and therefor is highly unreliable when used like that. There is a risk of ending up with values/formulas where you don't want them. I suggest making use of the last used row from column C:C
(or in your case DN
) and go from there. So allready much saver would be something like:
.Range("BM1:BM" & <LastUsedRowOfDN>).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=RC118"