Unless you range contains multi-cell array formulas, I would recommend using a Table. That makes the table body range or any column within it fully dynamic without counting or searching for the end (no volatile functions). If you actually need to know the number of records that is given by = ROWS(tableName)