Моих скудных знаний не хватило для решения следующей задачи: Есть 3 листа:
Лист1 в столбцах: Номер заказа Номер Товара Кол-во Товара
Лист2 (Состояние склада 1) в столбцах: Номер Товара Кол-во Товара
Лист3 (Состояние склада 2) в столбцах: Номер Товара Кол-во Товара
Нужно написать цикл который построчно брал бы с 1ого листа значение кол-ва товара, искал бы сначала на Листе2 соответствующий товар и вычитал кол-во, если кол-во <0, то переходил бы на Лист3 и вычитал кол-во. В результате нужно получить на Лист4 таблицу вида: "Заказ Номер" "Строк натянулось на склад1" "Строк натянулось на склад2" Соответственно чем дольше работает цикл, тем больше строк будет натягиваться на склад2
Моих знаний хватило на цикл, который копирует значения номера товара и кол-ва в переменные и ищет значение на Листе2, дальше возникли вопросы:
Начал писать следующее и затупил:
[vba]
Код
Sub calc()
Dim Id As Long Dim Qty As Long Dim Order As Long Dim i , j as Long
With Worksheets("orders") 'заказы For j = 1 To 6164 Id = .Cells(j, 5).Value Qty = .Cells(j, 4).Value With Worksheets("ml") 'склад1 Range(A1:A50000).Find(Id, xlValues, xlWhole) '??????
[/vba]
Вопрос в следующем: Как мне используя метод Range.Find вычитать значение из соседней с номером товара ячейки на Листе2? Далее используя If на проверку отрицательности значения на Листе2 я аналогично буду вычитать на Листе3, и используя j = j + 1 пробегу все строки с Листа1 заказы?
Здравствуйте, господа.
Моих скудных знаний не хватило для решения следующей задачи: Есть 3 листа:
Лист1 в столбцах: Номер заказа Номер Товара Кол-во Товара
Лист2 (Состояние склада 1) в столбцах: Номер Товара Кол-во Товара
Лист3 (Состояние склада 2) в столбцах: Номер Товара Кол-во Товара
Нужно написать цикл который построчно брал бы с 1ого листа значение кол-ва товара, искал бы сначала на Листе2 соответствующий товар и вычитал кол-во, если кол-во <0, то переходил бы на Лист3 и вычитал кол-во. В результате нужно получить на Лист4 таблицу вида: "Заказ Номер" "Строк натянулось на склад1" "Строк натянулось на склад2" Соответственно чем дольше работает цикл, тем больше строк будет натягиваться на склад2
Моих знаний хватило на цикл, который копирует значения номера товара и кол-ва в переменные и ищет значение на Листе2, дальше возникли вопросы:
Начал писать следующее и затупил:
[vba]
Код
Sub calc()
Dim Id As Long Dim Qty As Long Dim Order As Long Dim i , j as Long
With Worksheets("orders") 'заказы For j = 1 To 6164 Id = .Cells(j, 5).Value Qty = .Cells(j, 4).Value With Worksheets("ml") 'склад1 Range(A1:A50000).Find(Id, xlValues, xlWhole) '??????
[/vba]
Вопрос в следующем: Как мне используя метод Range.Find вычитать значение из соседней с номером товара ячейки на Листе2? Далее используя If на проверку отрицательности значения на Листе2 я аналогично буду вычитать на Листе3, и используя j = j + 1 пробегу все строки с Листа1 заказы?superscope