В процессе изучения массивов в VBA у меня возникли сложности. Вопрос в следующем:
На первом листе есть исходная таблица и 2 сводные таблицы как примеры того, что должно быть выведено на листы Вывод1 и Вывод2.
Я написал код, используя полученные знания с форумов, но 100% процентов допустил ошибки,т.к. при запуске на листе Вывод1 неверно считаются кол-ва коробов, а на листе Вывод2 кол-во штук в 2 раза больше, чем должно быть…
Подскажите пожалуйста, что поправить в коде нужно? Заранее спасибо!)
В процессе изучения массивов в VBA у меня возникли сложности. Вопрос в следующем:
На первом листе есть исходная таблица и 2 сводные таблицы как примеры того, что должно быть выведено на листы Вывод1 и Вывод2.
Я написал код, используя полученные знания с форумов, но 100% процентов допустил ошибки,т.к. при запуске на листе Вывод1 неверно считаются кол-ва коробов, а на листе Вывод2 кол-во штук в 2 раза больше, чем должно быть…
Подскажите пожалуйста, что поправить в коде нужно? Заранее спасибо!)Raven2009
For r = 1To k1
m = Split(res(r, 4), "~") IfNotIsArray(m) Then res(r, 4) = 1Else res(r, 4) = UBound(m) + 1 Next r 'здесь можно заморочиться с ListObject
Sheets("Вывод2").Range("A3").Resize(k2, UBound(y, 2)).Value = y
Sheets("Вывод1").Range("A3").Resize(k1, UBound(res, 2)).Value = res EndSub
Raven2009, привет попробуйте как-то так:
Sub Export22() Dim m, y(), t$, r& Dim res(), k2&, k1&, rw&
m = Range("приемка_tb").Value ReDim y(1ToUBound(m), 1To5) 'Таблица2: для листа Вывод2 ReDim res(1ToUBound(m), 1To5) 'Таблица1: для листа Вывод1
For r = 1To k1
m = Split(res(r, 4), "~") IfNotIsArray(m) Then res(r, 4) = 1Else res(r, 4) = UBound(m) + 1 Next r 'здесь можно заморочиться с ListObject
Sheets("Вывод2").Range("A3").Resize(k2, UBound(y, 2)).Value = y
Sheets("Вывод1").Range("A3").Resize(k1, UBound(res, 2)).Value = res EndSub
В массив res в 4-ю колонку собираются уникальные номера коробок. Собираются в строку через "~". В цикле разбиваем этот элемент массива res(r, 4) по тильде, получаем массив m: m = Split(res(r, 4), "~") Сколько элементов в этом массиве m, столько и коробок.
В массив res в 4-ю колонку собираются уникальные номера коробок. Собираются в строку через "~". В цикле разбиваем этот элемент массива res(r, 4) по тильде, получаем массив m: m = Split(res(r, 4), "~") Сколько элементов в этом массиве m, столько и коробок.nilem