Note: The other languages of the website are Google-translated. Back to English

Come copiare e inserire la riga più volte o duplicare la riga x volte in Excel?

Nel tuo lavoro quotidiano, hai mai provato a copiare una riga o ogni riga e quindi inserire più volte sotto la riga di dati corrente in un foglio di lavoro? Ad esempio, ho un intervallo di celle, ora, voglio copiare ogni riga e incollarle 3 volte nella riga successiva come mostrato nella seguente schermata. Come hai potuto affrontare questo lavoro in Excel?


Copia e inserisci una riga specifica più volte con il codice VBA

Se vuoi duplicare solo una riga specifica x volte, il seguente codice VBA può aiutarti, per favore fai come segue:

1. Specificare una riga che si desidera copiare e inserire più volte, quindi tenere premuto il tasto ALT + F11 chiavi, quindi apre il file Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Moduloe incolla il codice seguente nel file Modulo Finestra.

Codice VBA: duplica una riga specifica più volte:

Sub test()
'Updateby Extendoffice
    Dim xCount As Integer
LableNumber:
    xCount = Application.InputBox("Number of Rows", "Kutools for Excel", , , , , , 1)
    If xCount < 1 Then
        MsgBox "the entered number of rows is error, please enter again", vbInformation, "Kutools for Excel"
        GoTo LableNumber
    End If
    ActiveCell.EntireRow.Copy
    Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(xCount, 0)).EntireRow.Insert Shift:=xlDown
    Application.CutCopyMode = False
End Sub

3. Dopo aver incollato il codice, premere F5 chiave per eseguire questo codice e viene visualizzata una finestra di messaggio per ricordarti di inserire il numero di volte che desideri duplicare, vedi screenshot:

4. Quindi fare clic OK pulsante e tre nuove righe copiate sono state inserite sotto la riga selezionata, vedi screenshot:


Copia e inserisci facilmente ogni riga più volte in base a un numero specifico

Normalmente, non esiste un buon metodo per copiare e inserire righe più volte tranne che per la copia e l'inserimento manuale. Ma con Kutools for Excel's Righe / colonne duplicate in base al valore della cella funzionalità, puoi risolvere questo problema con facilità. Fai clic per scaricare Kutools per Excel!

Kutools for Excel: con più di 300 utili componenti aggiuntivi di Excel, liberi di provare senza limitazioni in 60 giorni. Scarica e prova gratuita ora!


Copia e inserisci ogni riga più volte con il codice VBA

Per duplicare ogni riga più volte in un intervallo, puoi applicare il seguente codice VBA, per favore fai come di seguito:

1. Tieni premuto il ALT + F11 chiavi, quindi apre il file Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Moduloe incolla il codice seguente nel file Modulo Finestra.

Codice VBA: duplica ogni riga più volte:

Sub insertrows()
'Updateby Extendoffice
Dim I As Long
Dim xCount As Integer
LableNumber:
xCount = Application.InputBox("Number of Rows", "Kutools for Excel", , , , , , 1)
If xCount < 1 Then
MsgBox "the entered number of rows is error ,please enter again", vbInformation, "Kutools for Excel"
GoTo LableNumber
End If
For I = Range("A" & Rows.CountLarge).End(xlUp).Row To 2 Step -1
Rows(I).Copy
Rows(I).Resize(xCount).Insert
Next
Application.CutCopyMode = False
End Sub

3. E poi premere F5 chiave per eseguire questo codice e viene visualizzata una finestra di messaggio per ricordarti di inserire il numero di volte che desideri duplicare per ogni record, vedi screenshot:

4. Quindi fare clic OK, e ogni riga è stata copiata e inserita 3 volte sotto quelle attive, vedi screenshot:

Note:: Nel codice sopra, il A indica che l'intervallo di dati inizia dalla colonna A, se i dati iniziano dalla colonna K, per favore cambia A a K secondo le tue necessità.


Copia e inserisci ogni riga più volte in base a un numero specifico con una funzionalità fantastica

Forse non hai familiarità con il codice VBA o ti preoccupi che il codice causi l'arresto anomalo dei tuoi dati. Qui introdurrò una funzione utile, Kutools for Excel's Righe / colonne duplicate in base al valore della cella, con questa utility, puoi copiare e inserire rapidamente le righe in base al numero specificato.

Suggerimenti:Per applicare questo Righe / colonne duplicate in base al valore della cella in primo luogo, dovresti scaricare il file Kutools for Excele quindi applica la funzione in modo rapido e semplice.

Dopo l'installazione Kutools for Excel, per favore fai come questo:

1. Inserisci i numeri di ripetizione che desideri duplicare le righe in un elenco di celle accanto ai tuoi dati, vedi screenshot:

2. Clic Kutools > inserire > Righe / colonne duplicate in base al valore della cella, vedi screenshot:

3. Nel Copia e inserisci righe e colonne finestra di dialogo, selezionare Copia e inserisci righe opzione nel Tipologia sezione, quindi seleziona l'intervallo di dati che desideri duplicare, quindi specifica il tempo di ripetizione per duplicare le righe, vedi screenshot:

4. Quindi, fare clic Ok or APPLICA pulsante, otterrai il seguente risultato di cui hai bisogno:

Fai clic per scaricare Kutools per Excel e prova gratuita ora!


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office/Excel 2007-2021 e 365. Supporta tutte le lingue. Facile implementazione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • 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, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
fondo officetab
Commenti (32)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
.
Questo commento è stato fatto dal moderatore sul sito
Macro impressionante - Mi ha fatto risparmiare così tanto tempo!
Questo commento è stato fatto dal moderatore sul sito
vero bel compagno di macro!
Questo commento è stato fatto dal moderatore sul sito
voglio generare righe duplicate in modo casuale,

per es. generare righe duplicate casuali comprese tra 20 e 80.


quale sarà il codice aggiornato per quanto segue


Righe di inserimento secondarie()
'Aggiorna entro Extendoffice 2016616
Dim I quanto a lungo
Dim xCount As Integer
Numero di etichetta:
xCount = Application.InputBox("Numero di righe", "Ktools per Excel", , , , , , 1)
Se xCount < 1 Allora
MsgBox "il numero di righe inserito è un errore, per favore inserirlo di nuovo", vbInformation, "Ktools for Excel"
Vai a numero di etichetta
End If
For I = Range("A" & Rows.CountLarge).End(xlUp).Row To 1 Step -1
Righe(I).Copia
Righe(I).Ridimensiona(xCount).Inserisci
Successiva
Application.CutCopyMode = False
End Sub
Questo commento è stato fatto dal moderatore sul sito
Voglio duplicare le righe in base a un parametro. Ad esempio, ho una colonna denominata durata della riunione. Se quella colonna è maggiore di 1, voglio duplicare le righe dell'ID riunione in base a quel numero. Se la durata della riunione è di 2 ore, duplica l'ID riunione due volte. Se la riunione dura 3 ore, duplica tre volte.
gli incrementi di mezz'ora possono essere arrotondati all'ora.

MeetingID Ora di inizio Ora di fine Durata della riunione
43117 9:00 11:00 02:00
43580 9:30 11:00 01:30
42699 10:00 11:30 01:30
12345 01:00 2:00 01:00
Questo commento è stato fatto dal moderatore sul sito
Ho lo stesso problema. Hai trovato una soluzione?
Questo commento è stato fatto dal moderatore sul sito
Ciao ragazzi,
Potrebbe essere il seguente codice VBA che può farti un favore, applicalo:
Righe di inserimento secondarie()
Dim I quanto a lungo
Dim xRg come intervallo
Dim xOra, xMin Finché
On Error Resume Next
Application.ScreenUpdating = False
For I = Range("D" & Rows.CountLarge).End(xlUp).Row To 1 Step -1
xOra = 0
Imposta xRg = Intervallo ("D" e I)
xOra = Ora(xRg.Valore) + 1
xMin = Minuto(xRg.Valore)
Se xMin < 30 Allora xOra = xOra - 1
Righe(I).Copia
Righe(I).Ridimensiona(xOra).Inserisci
Successiva
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub

Per favore, provalo. Spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Ho usato questa macro in passato e ha sempre funzionato fino a poco tempo fa. Qualche idea sul perché duplierebbe solo la riga superiore anche quando si utilizzano le macro a più righe? Ho rimosso tutti i filtri/riquadri bloccati.
Questo commento è stato fatto dal moderatore sul sito
Ciao, come posso modificare il codice per includere quanto segue

1. duplicato in base al numero di giorni
2. cambiare la colonna EOM da fine mese a data giornaliera
Questo commento è stato fatto dal moderatore sul sito
Grazie davvero per il vostro supporto!!!!
Questo commento è stato fatto dal moderatore sul sito
Adoro il codice! come faccio a impostare l'intervallo di inizio per saltare la prima riga (intestazioni di colonna) e iniziare dalla riga 2?
Questo commento è stato fatto dal moderatore sul sito
Ciao, Devin,
Per saltare la prima riga di intestazione, applica il seguente codice VBA:

Righe di inserimento secondarie()
Dim I quanto a lungo
Dim xCount As Integer
Numero di etichetta:
xCount = Application.InputBox("Numero di righe", "Ktools per Excel", , , , , , 1)
Se xCount < 1 Allora
MsgBox "il numero di righe inserito è un errore, per favore inserirlo di nuovo", vbInformation, "Ktools for Excel"
Vai a numero di etichetta
End If
For I = Range("A" & Rows.CountLarge).End(xlUp).Row To 2 Step -1
Righe(I).Copia
Righe(I).Ridimensiona(xCount).Inserisci
Successiva
Application.CutCopyMode = False
End Sub

Per favore, provalo, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Ciao, ho bisogno di aiuto, ecco come appare la mia tabella, ad esempio, quando aggiungo 2 righe alla fine della mia prima tabella, voglio che vba mi aiuti a fare la stessa cosa per la tabella seguente (aggiungi 1 righe al fine della tavola). Quindi il mio lavoro sarà, ho solo bisogno di aggiungere righe alla prima tabella, la tabella sottostante genererà tutte le righe automaticamente in base al numero di righe nella prima tabella. sono la codifica che ho usato ora per aggiungere la riga per la prima tabella. Spero che qualcuno possa risolvere questo problema per me, grazie.Sub InsertNumRows()

ActiveCell.EntireRow.Copy

Dim Rng Finché

Application.DisplayAlerts = False
On Error Resume Next
Rng = InputBox("Inserisci il numero di righe richieste.")
On Error GoTo 0
Application.DisplayAlerts = Vero

Se Rng = 0 Allora
MsgBox "Non hai specificato un intervallo!"
Exit Sub

Altro
Intervallo(Offset.Cell.Attiva(1, 0), Offset.Cell.Attiva(Rng, 0)).Seleziona
Selection.EntireRow.Insert Shift:=xlDown
End If

End Sub
Questo commento è stato fatto dal moderatore sul sito
Lo adoro! Funziona ogni volta! Grazie mille per questo :)
Questo commento è stato fatto dal moderatore sul sito
come faccio a farlo per le colonne?
Questo commento è stato fatto dal moderatore sul sito
Come posso farlo per le colonne?
Questo commento è stato fatto dal moderatore sul sito
come eseguire la stessa azione con le celle selezionate usando VB,


Devo ripetere alcune celle selezionate (righe e colonne) x no di volte nello stesso foglio e nello stesso ordine di:

line1
line2
line3

line1
line2
line3
Questo commento è stato fatto dal moderatore sul sito
ciao, ha funzionato alla grande, ho solo bisogno di due righe copiate N numero di volte. Puoi per favore regolare il codice in modo che quando seleziono due righe, copierà quelle due righe in basso N volte? Grazie per l'aiuto
Questo commento è stato fatto dal moderatore sul sito
Ciao, Sal,
Se devi copiare solo due righe in basso più volte, devi solo utilizzare il codice VBA 1 in questo articolo, applicare il codice due volte risolverà il tuo problema. Per favore, prova, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Copia e inserisci ogni riga più volte con il codice VBA

Nel codice VBA come posso selezionare la riga iniziale
Questo commento è stato fatto dal moderatore sul sito
No funciona con Windows 2019, deseo usar la función en mención pero simplemente no hace assolutamente nada
Questo commento è stato fatto dal moderatore sul sito
ciao a tutti.. Grazie in anticipo per il vostro aiuto!!

Il codice VBA per duplicare più volte una riga specifica funziona perfettamente finché non si utilizza un filtro. Mi chiedo se qualcuno può aiutarmi a risolvere questo problema. Ho bisogno di un codice che funzioni anche se hai alcuni valori filtrati. Sto usando una grande quantità di dati ordinati per posizioni. Il codice funziona parzialmente, incolla il numero di righe desiderate ma nessun dato o formato quando ho applicato un filtro.
Questo commento è stato fatto dal moderatore sul sito
Ciao, è possibile utilizzare dimensioni (valori) diverse per ogni riga? Sto provando a usare il vettore, ma non funziona.
Per esempio :
Righe(I).Resize(xCount(y) ).Insert

Dove i valori salvati in xCount(y) vengono letti da una tabella.
Questo commento è stato fatto dal moderatore sul sito
Ciao, Guss,
Potrebbe essere l'articolo qui sotto può aiutarti, controllalo:
https://www.extendoffice.com/documents/excel/4054-excel-duplicate-rows-based-on-cell-value.html
Questo commento è stato fatto dal moderatore sul sito
Per il secondo codice VBA (codice VBA: duplica ogni riga più volte) continuo a ricevere come errore di runtime: 1004
Non ci sono ancora commenti pubblicati qui
Carica Altre
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL