Как записать вложенный оператор If внутри другого оператора If, чтобы добиться нужного эффекта? - VBA
Формулировка задачи:
Добрый день, подскажите пожалуйста почему не правильно отрабатывает макрос?
Суть задачи, есть ячейки вида
пустая ячейка означает это один и тот же товар но под разных покупателей. количество товара это сумма 3+4 = 7
но например ниже
4+1 это 5, а в ячейке написано 6, 1 товар значит ложится на склад, и макрос должен добавить пустую строку. вычислить остаток склада и дописать его. Должно получиться что то
Макрос работает, но выражение Else cell5.Offset(1, 0).EntireRow.Insert отрабатывает сразу. как бы относя его к первому оператору
7 | 3 | Ане |
_ | 4 | Саше |
4 | 4 | Диме |
6 | 1 | Леше |
_ | 4 | Лере |
1 | 1 | Ивану |
6 | 1 | Леше |
_ | 4 | Лере |
3 | 3 | Ане |
4 | 4 | Саше |
4 | 4 | Диме |
1 | 1 | Леше |
4 | 4 | Лере |
1 | 1 | склад |
1 | 1 | Ивану |
Решение задачи: «Как записать вложенный оператор 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