Thanks agraham.
I've fixed this bug and updated the source code.
This is the change:
Code:
Sub CalcColumnPosition (colNumber)
x = editTable.x
o.Value = obj.RunMethod3("HitTest",x,"System.Int32",editTable.y,"System.Int32")
If o.GetProperty("Type") = "None" Then editTable.y = editTable.y - editTable.rowHeight
...
Now we first check that the current position is a cell. If it is not a cell (which happens when we press on the last row and it's partially hidden) then y is updated to the previous row.