Макрос простановки размеров в ячейки с наличием

Рассмотрим вариант прайс-листа, где размеры заданы в строке заголовка, в строках с товарами проставлено наличие (например, знаками +)

 

Наша задача — обработать этот прайс таким образом, чтобы в результате получить наименования товаров и список доступных размеров по каждому товару.

Для этого, нужно вместо символов «+» подставить значения из 4 строки соответствующего столбца.
Тогда программа, перебирая строки прайса, соединит значения из столбцов с 13 по 21, сформировав размерный ряд.

Для такого преобразования прайс-листа нам потребуется дополнительный макрос, — но макрос будет простой, из 1 строки кода:

Sub ReplaceMarkWithSizeValue()
    ' заменяет в файле ячейки, содержащие +, на значение из 4 строки листа (размер)
    Range("M:Z").Replace "+*", "=R4C", xlWhole
End Sub

Добавим этот макрос в файл macro.xla, и для начала протестируем работу макроса, открыв в Excel исходный прайс-лист, и нажав кнопку F5 в редакторе макросов для запуска нашего макроса.

Если вы всё сделали правильно, то прайс-лист примет такой вид:

 

Как мы видим, макрос отработал как надо, и теперь этот прайс-лист может быть обработан надстройкой Unification

Осталось указать название макроса ReplaceMarkWithSizeValue в настройках обработчика прайса на подвкладке Макросы, и теперь этот макрос будет автоматически запускаться программой перед обработкой прайсов данного поставщика.