Come divido una singola riga in più righe in base alla quantità in Excel?


0

Ho un foglio di calcolo che elenca le attrezzature mediche (identificate da JSN) all'interno di una stanza. Un singolo pezzo di equipaggiamento (JSN) può avere più quantità all'interno di una stanza. Vorrei separare tutte le righe che hanno una quantità maggiore di 1 in più righe con gli stessi dati modificando contemporaneamente la quantità in 1 EA. Ecco un esempio di come appare il foglio di calcolo esistente (meno altre colonne):

Nomenclature           JSN          Wayfinding Rm #        QTY         Installed
Shelving, Solid       M2090             40-179              3           5/5/15
Waste Can, Swing      F2010             11-087              2           9/9/15
Stand, Mayo, Screw    M8810             11-078              1           8/1/15

Ecco cosa mi servirebbe per apparire:

Nomenclature          JSN          Wayfinding Rm #         QTY       Installed
Shelving, Solid       M2090             40-179              1           5/5/15
Shelving, Solid       M2090             40-179              1           5/5/15
Shelving, Solid       M2090             40-179              1           5/5/15
Waste Can, Swing      F2010             11-087              1           9/9/15
Waste Can, Swing      F2010             11-087              1           9/9/15
Stand, Mayo, Screw    M8810             11-078              1           8/1/15

Qualsiasi aiuto sarebbe molto apprezzato. Tieni presente che OGGI ho appena scoperto VBA e macro! Cercando di imparare. Grazie mille a chiunque possa aiutare questo principiante in difficoltà ma desideroso!

Risposte:


1

Qualcosa del genere dovrebbe funzionare, supponendo che questi dati inizino nella cella A1

In realtà - qui, rimarranno in ordine

Sub test()
Dim lastrow As Integer
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Dim howmany As Integer
For i = lastrow To 1 Step -1
    If Cells(i, 4) > 1 Then
       howmany = Cells(i, 4)
       For j = 1 To howmany - 1
       Rows(i + 1).Insert (xlShiftDown)
       Cells(i, 4) = 1
       Cells(i + 1, 1) = Cells(i, 1)
       Cells(i + 1, 2) = Cells(i, 2)
       Cells(i + 1, 3) = Cells(i, 3)
       Cells(i + 1, 4) = Cells(i, 4)
       Cells(i + 1, 5) = Cells(i, 5)
       Next
    End If
Next

End Sub

Questo li mette alla fine:

Sub test()
Dim lastrow As Integer
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Dim nextrow As Integer
nextrow = lastrow + 1
Dim howmany As Integer
For i = 1 To lastrow
    If Cells(i, 4) > 1 Then
       howmany = Cells(i, 4)
       For j = 1 To howmany - 1
       Cells(i, 4) = 1
       Cells(nextrow, 1) = Cells(i, 1)
       Cells(nextrow, 2) = Cells(i, 2)
       Cells(nextrow, 3) = Cells(i, 3)
       Cells(nextrow, 4) = Cells(i, 4)
       Cells(nextrow, 5) = Cells(i, 5)
       nextrow = nextrow + 1
       Next
    End If
Next

End Sub
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.