Excel changes the datatype when an Excel.Range is cell-sized. Also fix calculation for 1-based loop bounds with arbitrary left and top offsets.