データ範囲のセルを連結する VBA コード

データ範囲のセルを連結する VBA コード

複数のバリエーションとサイズを持つことができる製品があります。値を取得して連結し、製品 SKU を作成できるマクロが必要です。たとえば、製品は 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 にあり、作成時の SKU が異なるセルにあると仮定すると、次の 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 に SKU を作成します。

ここに画像の説明を入力してください

関連情報