1個ずつに行をバラバラにする

需要あるかわからないけど、関数ではできないことなので。

下記のように合計数量が入った行を、

1個ずつを1行ずつに分解するプログラム。

1. まずはSheet2という名称でシートを追加。

2. VBEditorを開いて、Sheet1に下記プログラムを張り付けて、実行。

Sub barashi()

    Dim readRow As Integer
    Dim writeRow As Integer
    Dim qty As Integer
    Dim Item As String
    
    readRow = 2
    writeRow = 1
    
    Sheets("Sheet2").Range("A:B").Cells = ""

    Do While Cells(readRow, 1) <> ""
    
        Item = Cells(readRow, 1)
        qty = Cells(readRow, 2)
            
        For i = 1 To qty
        
            Sheets("Sheet2").Cells(writeRow, 1) = Item
            Sheets("Sheet2").Cells(writeRow, 2) = 1
        
            writeRow = writeRow + 1
            
        Next
            
        readRow = readRow + 1
    
    Loop

    Sheets("Sheet1").Activate

End Sub

これで1個ずつにバラけます。

ただし、商品はソートしておかないと、上から読み込むだけなので、飛び飛びで同じ商品があっても、飛び飛びで1個ずつの行になるので、注意。

コメント

タイトルとURLをコピーしました