VBA-Code zum Verketten von Zellen für einen Datenbereich

VBA-Code zum Verketten von Zellen für einen Datenbereich

Ich habe ein Produkt, das mehrere Varianten und Größen haben kann. Ich brauche ein Makro, das Werte annehmen und diese verketten kann, um eine Produkt-SKU zu erstellen. Mein Produkt ist beispielsweise 1234. Die Varianten sind ABF, PLC, MKLN, XTR. Die Größen sind 30, 36 usw. Ich muss alle Varianten im Makro erstellen, indem ich diese Werte aus einer Spalte verwende. Meine endgültigen Produkte werden also 1234-30-ABF, 1234-30-PLC, 1234-30-MKLN usw. und 1234-36-ABF, 1234-36-PLC usw. sein. Ich kann diese Werte in der Spalte angeben. Ich muss die Spalten lesen und das Makro in einer Schleife ausführen, indem ich entweder die Funktion „&“ oder „concat“ verwende. Ich werde die Werte angeben. Ich habe das Makro VBA ausprobiert, kann aber keine Variable in der Funktion „concat“ verwenden. Bitte helfen Sie.

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

Bild:

Antwort1

Angenommen, die Basismodelle stehen in Spalte A, die Varianten in Spalte B, die Größen in Spalte C und die SKUs befinden sich beim Erstellen in unterschiedlichen Zellen, dann können Sie das folgende VBA-Makro verwenden:

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

Es durchläuft die Zellen und erstellt SKUs in Spalte E.

Bildbeschreibung hier eingeben

verwandte Informationen