copiare le righe da un foglio di lavoro all’altro in excel utilizzando la macro

Ho un foglio di lavoro di excel con tutta una serie di righe e più colonne. Il 1 ° colonna contiene il nome del produttore, la 2 ° colonna contiene i codici di prodotto per tutti i prodotti, il 3 ° colonna contiene la descrizione e etc.
Quello che voglio fare è copiare le righe che corrisponde a determinati codici di prodotto. Per esempio:

**Manufacturer       Product code       Description**
abc                 B010                blah blah
dgh                 A012                
hgy                 X010                
eut                 B013                 
uru                 B014                 
eut                 B015              
asd                 G012            
sof                 B016
uet                 B016 
etc

C’è un modo per copiare le righe che ha i codici di prodotto tra B010 – B016? Ci potrebbe essere il doppio/la corrispondenza codice prodotto troppo, ed è totalmente bene di copiare anche loro.

Senso?

Mi dispiace, non ho il codice vba, messo qui di sicurezza.

Grazie in anticipo.

La copia in un nuovo foglio di lavoro con lo stesso riferimento di cella? O prodotti dovrebbe abc, codice B010 essere la riga 1, prodotto eut, codice B013 essere la riga 2, etc.?
abbastanza sicuro, è possibile utilizzare excel filtro avanzato per ottenere questo (vba rif) (vba esempio)
Sì, è possibile iniziare una nuova riga nel nuovo foglio di lavoro. Che non importa. Grazie.

OriginaleL’autore duper | 2012-07-19

One Reply
  1. 0

    Questo dovrebbe fare il trucco, copia A:C intervallo di celle per ogni B i valori delle celle che sono tra B010 e B016 alla successiva riga in Foglio2.

    Private Sub CopyRows()
        Dim lastrow As Long
        Dim r1 As Long, r2 As Long
    
        ' Get the last row in the worksheet
        lastrow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
    
        r2 = 1
    
        For r1 = 1 To lastrow
            ' If the last three characters of the B cell are numeric...
            If IsNumeric(Right(Sheet1.Range("$B$" & r1).Value, 3)) Then
                ' If the first character of the B cell is "B", and the last three 
                ' characters are between 10 and 16 ...
                If Left(Sheet1.Range("$B$" & r1).Value, 1) = "B" And _
                    CLng(Right(Sheet1.Range("$B$" & r1).Value, 3)) >= 10 And _
                    CLng(Right(Sheet1.Range("$B$" & r1).Value, 3)) <= 16 Then
    
                    ' ... copy the A-C range for the row to the next available row 
                    ' in Sheet2
                    Sheet2.Range("$A$" & r2, "$C$" & r2).Value = _
                        Sheet1.Range("$A$" & r1, "$C$" & r1).Value
    
                    r2 = r2 + 1
    
                End If
            End If
        Next
    End Sub

    OriginaleL’autore LittleBobbyTables

Lascia un commento