Код VBA для объединения ячеек для диапазона данных

Код VBA для объединения ячеек для диапазона данных

У меня есть продукт, который может иметь несколько вариантов и размеров. Мне нужен макрос, который может принимать значения и объединять их для создания артикула продукта. Например, мой продукт — 1234. Варианты — ABF, PLC, MKLN, XTR. Размеры — 30, 36 и т. д. Мне нужно создать все варианты в макросе, используя эти значения из столбца. Таким образом, мои конечные продукты будут 1234-30-ABF, 1234-30-PLC, 1234-30-MKLN и т. д. и 1234-36-ABF,1234-36-PLC и т. д. Я могу предоставить эти значения в столбце. Мне нужно прочитать столбцы и запустить макрос в цикле, используя либо функцию &, либо функцию concat. Я предоставлю значения. Я попробовал макрос VBA, но не могу использовать переменную в функции concat. Пожалуйста, помогите.

ActiveCell.FormulaR1C1 = "=Sheet2!RC&""-""&Sheet2!RC[3]&"".""&""FR"""

ИМГ:

решение1

Предполагая, что базовые модели находятся в столбце A, варианты — в столбце B, размеры — в столбце C, а артикулы при создании находятся в разных ячейках, можно использовать следующий макрос VBA:

Sub AllSKU()

    Dim model, myvariant, mysize, sku As String
    Dim lRow As Long
    Dim i As Integer

    lRow = Cells(Rows.Count, 1).End(xlUp).Row 'Get the last row with data
    model = Range("A2").Value
    
    Range("E:E").Value = "" 'Clear Column E -- As it will be used for SKUs
    Range("E" & 1).Value = "SKU"

    For x = 2 To lRow

        If Range("A" & x).Value <> "" Then 'Get model when cell is not empty
            model = Range("A" & x)
        End If

        Range("E" & x).Value = model & "-" & Range("B" & x).Value & "-" & Range("C" & x).Value
    Next

End Sub

Он проходит по ячейкам и создает артикулы в столбце E.

введите описание изображения здесь

Связанный контент