Sorry about not attaching a full project.
I downloaded and installed rev 7988, I still see the same issue. Unit fpsclasses hasn't changed from V1.12 and that's where the problem appears to be.
In function TsCells.GetColEnumerator, if parameter ACol has a value of UNASSIGNED_ROW_COL_INDEX, then the call to TsCellEnumerator fails with a range check error. In GetColEnumerator the ACol parameter is a Cardinal, while in TsRowColEnumerator.Create the corresponding parameters are LongInts. If I change the parameter types in the constructor to Cardinal then it no longer raises an error at the constructor call, but it does at line 508 of fpsClasses where FStartCol is assigned. FStartCol is a LongInt, while UNASSIGNED_ROW_COL_INDEX, at least on my system with FPC V3.2.0, is evaluated as a Cardinal with a value of $FFFFFFFF and this is what is causing the range check error.
If I change UNASSIGNED_ROW_COL_INDEX to -1, then compile time errors are raised in TsWorksheet.Create because fields FFirstRowIndex, FFirstColIndex etc. are all Cardinals. It might be easier for TsCells.GetColEnumerator to just return nil if the function is called when ACol contains UNASSIGNED_ROW_COL_INDEX.