Come copiare righe da più fogli di lavoro in un nuovo foglio in base a determinati criteri?
Si supponga di avere una cartella di lavoro con tre fogli formattati in modo identico, come mostrato nell’immagine seguente. Ora si desidera raccogliere in un nuovo foglio tutte le righe da questi fogli in cui la colonna C contiene il testo «Completed». Come risolvere questo problema in modo rapido e semplice, senza dover copiare e incollare manualmente ogni singola riga?
![]() | ![]() | ![]() |
Copiare righe da più fogli di lavoro in base a criteri in un nuovo foglio con codice VBA
Copiare righe da più fogli di lavoro in base a criteri in un nuovo foglio con codice VBA
Il seguente codice VBA consente di copiare righe specifiche da tutti i fogli di lavoro della cartella, in base a una determinata condizione, in un nuovo foglio di lavoro. Procedere come segue:
1. Tenere premuti i tasti ALT + F11 per aprire la finestra di Microsoft Visual Basic for Applications.
2. Fare clic su Inserisci > Modulo, quindi incollare il codice seguente nella finestra del modulo.
Codice VBA: Copiare righe da più fogli in base a criteri in un nuovo foglio
Public Sub CopyRows_ValuesAndNumberFormats()
Dim xWs As Worksheet
Dim xCWs As Worksheet
Dim xRg As Range
Dim xStrName As String
Dim xRStr As String
Dim xRRg As Range
Dim xC As Integer
On Error Resume Next
Application.DisplayAlerts = False
xStr = "Kutools for Excel"
xRStr = "Completed"
Set xCWs = ActiveWorkbook.Worksheets.Item(xStr)
If Not xCWs Is Nothing Then
xCWs.Delete
End If
Set xCWs = ActiveWorkbook.Worksheets.Add
xCWs.Name = xStr
xC = 1
For Each xWs In ActiveWorkbook.Worksheets
If xWs.Name <> xStr Then
Set xRg = xWs.Range("C:C")
Set xRg = Intersect(xRg, xWs.UsedRange)
For Each xRRg In xRg
If xRRg.Value = xRStr Then
xRRg.EntireRow.Copy
xCWs.Cells(xC, 1).PasteSpecial xlPasteValuesAndNumberFormats
xC = xC + 1
End If
Next xRRg
End If
Next xWs
Application.DisplayAlerts = True
End Sub
Nota: Nel codice riportato sopra:
- Il testo «Completed» in questo xRStr = «Completed»script indica la condizione specifica in base alla quale si desidera copiare le righe;
- C:C in questo Set xRg = xWs.Range(«C:C») script indica la colonna specifica in cui si trova la condizione.
3. Premere quindi il tasto F5per eseguire il codice. Tutte le righe corrispondenti alla condizione specificata verranno copiate e incollate in un nuovo foglio di lavoro denominato «Kutools per Excel» all’interno della cartella di lavoro corrente. Vedere l’immagine:

Altri articoli correlati sul recupero o la copia di dati:
- Copiare dati in un altro foglio di lavoro con Filtro avanzato in Excel
- Di solito, è possibile applicare rapidamente il filtro avanzato per estrarre dati dai dati grezzi nello stesso foglio di lavoro. Tuttavia, a volte, quando si tenta di copiare i risultati filtrati in un altro foglio di lavoro, compare il seguente messaggio di avviso. In questo caso, come si può gestire l’operazione in Excel?
- Copiare righe in un nuovo foglio in base a criteri di colonna in Excel
- Ad esempio, supponiamo di avere una tabella degli acquisti di frutta e di dover copiare i record in un nuovo foglio in base a un tipo specifico di frutto. Come si può eseguire questa operazione in modo semplice ed efficace in Excel? Di seguito sono illustrate alcune metodologie per copiare righe in un nuovo foglio in base a criteri definiti in una colonna di Excel.
- Copiare righe se la colonna contiene un testo/valore specifico in Excel
- Supponiamo che si desideri individuare le celle contenenti un testo o un valore specifico in una colonna e successivamente copiare la Riga intera in cui si trova la cella trovata. Come si può procedere? Di seguito vengono presentati alcuni metodi per verificare se una colonna contiene un testo o un valore specifico e quindi copiare la Riga intera in Excel.
I migliori strumenti per la produttività in ufficio
Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività del 80 %
- Super Barra delle formule (modifica facilmente più righe di testo e formule); Layout di lettura (leggi e modifica con facilità un gran numero di celle); Incolla in Intervallo di filtro...
- Unisci celle/righe/colonne e conserva i dati; dividi il contenuto delle celle; combina righe duplicate e calcola somma/media…; previeni voci duplicate; confronta intervalli…
- Seleziona duplicati o valori univoci nelle righe; Seleziona righe vuote (tutte le celle sono vuote); Super Trova e ricerca fuzzy in molte cartelle di lavoro; selezione casuale…
- Copia esatta di celle multiple senza modificare i riferimenti delle formule; creazione automatica di riferimenti a più fogli; inserisci punti elenco, caselle di controllo e molto altro...
- Formule preferite e inserimento rapido, intervalli, grafici e immagini; crittografa le celle con password; crea un elenco di invio e invia email...
- Estrai testo, aggiungi testo, rimuovi caratteri da una posizione specifica, elimina spazi; crea e stampa statistiche dei dati della pagina; converti il contenuto delle celle in commenti e viceversa...
- Super Filtri (salva e applica schemi di filtro ad altri fogli); Ordinamento avanzato per mese, settimana, giorno, frequenza e molto altro; Filtro speciale per grassetto, corsivo…
- Combina cartelle e fogli di lavoro; unisci tabelle in base a una colonna chiave; suddividi i dati in più fogli; converti in batch file xls, xlsx e PDF...
- Raggruppa la tabella pivot per numero di settimana, giorno della settimana e altro ancora...Mostra le celle sbloccate e blocca la selezione con colori diversi;Evidenzia le celle contenenti formule o nomi...
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e riduci centinaia di clic del mouse ogni giorno!


