2017-01-30 5 views
0

Я пытаюсь написать макрос, который будет автоматически обновлять запас, используя количество, используемое из одной ячейки, вычитая его из общего количества на другом листе.VBA Excel Macro для вычитания ячейки из другого листа с помощью VLOOKUP

Просмотр листа

enter image description here

Таким образом, в данном случае - я хочу, чтобы вычесть «килограммы», которая является диапазон ячеек «I17: I24» от того, что «килограммы доступных», который проводится в листе «Солод» и обновлен из VLOOKUP, определенного из «Batch Code» в Brew Sheet.

Я предполагаю, что код, вероятно, должен был бы VLOOKUP, чтобы пакетный код на листе солода и вычесть «килограммы» в листе «Brew Sheet» из «доступных килограммов» на листе «Солод» (колонка L)

То, что может также осложнить, заключается в том, что ячейки в диапазоне E17: 24, содержащие коды партии для VLOOKUP, не имеют значений. Это может вызвать ошибки, если, возможно, мне не нужно будет использовать все ячейки в этом диапазоне? (Если это имеет смысл - иногда мне может потребоваться использовать только 1/2 из 8 ячеек в диапазоне)

Извиняется заранее, если мой вопрос неясен. Мои знания в области кодирования очень ограничены.

Спасибо вам за помощь.

ответ

0

вам необходимо получить сумму кГс в диапазоне Е17: 24, где пакетный код соответствовал пакетный код на солодовой листе

=sumif(Malt!$E$17:$E$24,L17,Malt!$I$17:$I$24) 

Тогда все, что вам нужно сделать, это вычесть, что из имеющегося значения в колонка I

=I17-sumif(Malt!$E$17:$E$24,L17,Malt!$I$17:$I$24) 

Не уверен, что у меня есть правильные столбцы.

+0

Это не сумма, которую мне нужно вычитать, это отдельная сумма от каждой ячейки в этом диапазоне до соответствующего пакетного кода на другом листе, который затем вычитается при нажатии кнопки макроса. –

+0

Мои решения предполагают, что возможно иметь несколько записей для каждого пакетного кода, и, следовательно, необходимо будет получить сумму всех записей 16-PILS, например. Я не предполагал, что вы суммируете значения, которые имеют разные коды. Если вы считаете, что ваш vlookup вернет ошибку, вы можете использовать = iferror (vlookup, ""), чтобы поймать ошибку. – Gordon

+0

Это было бы возможно, но у меня, вероятно, не было бы нескольких записей каждого пакетного кода. Я уже начал кодировать макрос, который экспортирует данные из этого листа в новый отдельный рабочий лист и сбрасывает данные. –

Смежные вопросы