Código VBA para concatenar celdas para un rango de datos

Código VBA para concatenar celdas para un rango de datos

Tengo un producto que puede tener múltiples variantes y tamaños. Necesito una macro que pueda tomar valores y concatenarlos para crear el SKU del producto. Por ejemplo, mi producto es 1234. Las variantes son ABF, PLC, MKLN, XTR. Los tamaños son 30, 36, etc. Necesito crear todas las variantes en Macro usando estos valores de una columna. Entonces mis productos finales serán 1234-30-ABF, 1234-30-PLC, 1234-30-MKLN, etc. y 1234-36-ABF, 1234-36-PLC, etc. Puedo proporcionar estos valores en la columna. Necesito leer las columnas y ejecutar la macro en un bucle usando la función & o concat. Te daré los valores. Probé la macro VBA pero no puedo usar la variable en la función concat. Por favor ayuda.

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

IMG:

Respuesta1

Suponiendo que los modelos base están en la columna A, las variantes en la columna B, los tamaños en las columnas C y los SKU cuando se crean están en celdas diferentes, entonces puede usar la siguiente macro de 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

Recorre las celdas y crea SKU en la columna E.

ingrese la descripción de la imagen aquí

información relacionada