The macro in step mode (F8) works differently than in normal (non-stop) mode

The macro in step mode (F8) works differently than in normal (non-stop) mode.
The purpose of the macro is to transfer the values ​​of the selected cells of column B to the cells of column C, clearing the original cells. Selection is performed by double-clicking on the upper of the cells to select and then double-clicking on the lower of the cells to select. Selection of empty cells is prohibited.
The subMoveParam macro is called by double-clicking.
An example of correct operation of the macro: double-clicking on cell B3, then double-clicking on cell B7; the corresponding texts are moved to column C, the original cells are cleared.
An example of incorrect operation: if only one cell is selected, for example, double-clicking on B10 and then double-clicking on B10 again, the text is transferred, but the original cell is not cleared.
But if we do the same in step mode (stop at line 58
.GetCellByPosition(2, i).string = .GetCellByPosition(1, i).string
then F8, F8, F8 and F5, then the original cell is cleared.
Help me understand why the macro does not work correctly when working with one cell? And why does the step mode work differently than the normal one?
Version: 6.3.6.2 (x64)
Build ID: 2196df99b074d8a661f4036fca8fa0cbfa33a497
CPU threads: 8; OS: Windows 10.0; UI render: default; VCL: win;
Locale: fr-FR (en_US); UI-Language: en-US
Calc: threaded
Note: I understand that selecting cells and their transfer can be done in simpler ways, but for internal reasons I need exactly this one.
testF8.ods (15.7 KB)

Using double click is a very bad idea, because it edits the cell, but, if you want to suffer, it’s fine.

Change line 59 to:

.GetCellByPosition(1, i).clearContents(31)

Thanks for the solution. But still: do you know why is non-stop macro execution mode different from step-by-step mode?

something quite general like Race condition - Wikipedia