Спасибо за отклик. Дело было в другом(пересчет от нуля до OrdersTotal тоже не помог).Начальные значения переменных "s" и "b" какие? (Предполагаю что "0".)
тут ты от болшего (i=OrdersTotal()-1;i>=0;i--)) к меньшему идёшь, а переменные на оборот формируешь.
Запусти в отладчике код, посмотри.
По глупости запустил внутри цикла перебора еще один(FindLastOpen). Из-за этого переменные и перебивались.