Как записать вложенный оператор If внутри другого оператора If, чтобы добиться нужного эффекта? - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день, подскажите пожалуйста почему не правильно отрабатывает макрос? Суть задачи, есть ячейки вида
7 3 Ане
_ 4 Саше
4 4 Диме
6 1 Леше
_ 4 Лере
1 1 Ивану
пустая ячейка означает это один и тот же товар но под разных покупателей. количество товара это сумма 3+4 = 7 но например ниже
6 1 Леше
_ 4 Лере
4+1 это 5, а в ячейке написано 6, 1 товар значит ложится на склад, и макрос должен добавить пустую строку. вычислить остаток склада и дописать его. Должно получиться что то
3 3 Ане
4 4 Саше
4 4 Диме
1 1 Леше
4 4 Лере
1 1 склад
1 1 Ивану
Макрос работает, но выражение Else cell5.Offset(1, 0).EntireRow.Insert отрабатывает сразу. как бы относя его к первому оператору

Решение задачи: «Как записать вложенный оператор If внутри другого оператора If, чтобы добиться нужного эффекта?»

textual
Листинг программы
    For Each cell5 In ra5.Cells
        ' если ячейка не ранва соседней ячейке, делаем следующее
        If cell5.Value <> cell5.Offset(0, -1).Value Then
            If Trim(cell5.Offset(1, -1)) = "" Then
                cell5.Offset(1, -1) = cell5.Offset(0, -1).Value - cell5.Value
            Else
                cell5.Offset(1, 0).EntireRow.Insert
                'cell5.Insert Shift:=xlDown
                cell5.Offset(1, -1).Value = cell5.Offset(0, -1).Value - cell5.Value
                cell5.Offset(1, 0).Value = cell5.Offset(0, -1).Value - cell5.Value
            End If
        End If
        cell5.Offset(0, -1).Value = cell5.Value
    Next cell5

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы