Какъв е проблемът в кода за сумиране на комисионната?
Здравейте госпожо Вълкова, След като заложих да калкулира ред по ред комисионната искам да заложа да я сумира с While (ако има ст/ст в колоната за комисионните - запази ст/стта и я добави към вече запазената), но ми дава нула. Нещо не е наред в кода.
Проблемът е в променливата за реда (i), във втория блок-оператор While. В първия блок-оператор While се изчислява комисионната, докато не срещне празна клетка и за всеки ред променливата (i) се увеличава с 1. Когато завърши блок-оператора, променливата (i), съхранява последната увеличена стойност, но тя е различна от първоначалната стойност i=2. Ако в таблицата има 20 реда, тя ще бъде 22, например. Тогава за втория блок-оператор While, променливата започва от 22-ри ред While Not IsEmpty(Cells(i,j)) няма стойности и затова резултатът е 0. Проблемът може да се реши по два начина: 1. Да остане само един блок-оператор While, като след инструкцията за изчисляване на комисионната, се добави инструкцията: Total_commiss = Total_commiss + Cells(i,j) 2. Преди втория блок-оператор While да се зададе първоначалната стойност на променливата i=2. Аз предпочитам първия вариант.
Пишете, ако имате още въпроси.