In Microsoft Excel, possiamo copiare le celle dalla riga activecell a un foglio specifico. In questo articolo utilizzeremo il codice VBA per trasferire i dati da ogni foglio e unire i dati in un foglio di lavoro. Aggiungeremo un foglio principale nella cartella di lavoro e salveremo i dati dall'intervallo specificato in un foglio.
I codici di esempio verranno copiati in un foglio di database con il nome Sheet2. Ogni volta che eseguiamo la macro, le celle verranno posizionate sotto l'ultima riga con i dati dopo l'ultima colonna nel foglio2. Questa macro copierà le celle dalla colonna A, D dall'ActiveCell.
Di seguito è riportata l'immagine dei dati di esempio:
Per copiare le celle dalla riga activecell a Sheet2; dobbiamo seguire i passaggi seguenti per avviare l'editor VB:
- Fare clic sulla scheda Sviluppatore
- Dal gruppo Codice seleziona Visual Basic
- Fare clic su Inserisci quindi Modulo
- Questo creerà un nuovo modulo
- Inserisci il seguente codice nel Modulo Standard
Sub CopyCells() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Sheet2")) + 1 Set sourceRange = Sheets("Sheet1").Cells( _ ActiveCell.Row, 1).Range ("A1:D1") Imposta destrange = Sheets("Sheet2").Range("A" & Lr) sourceRange.Copy destrange End Sub
Sub CopyCellsValues() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Sheet2")) + 1 Set sourceRange = Sheets("Sheet1").Cells( _ ActiveCell.Row, 1).Range ("A1:D1") Con sourceRange Imposta destrange = Sheets("Sheet2").Range("A" _ & Lr).Resize(.Rows.Count, .Columns.Count) End With destrange.Value = sourceRange.Value Fine sottotitolo
Funzione LastRow(sh As Worksheet) On Error Resume Next LastRow = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas , _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row On Error GoTo 0 End Function
Funzione Lastcol(sh As Worksheet) In caso di errore Riprendi successivo Lastcol = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas , _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Column On Error GoTo 0 End Function
- Per controllare il codice VBA sopra; aggiungi dati nell'intervallo "A1: D1" e quindi esegui la macro premendo il tasto di scelta rapida F5
- I dati memorizzati nell'intervallo specificato verranno copiati su "Sheet2" a partire da A1
- Se eseguiamo di nuovo questa macro; i dati verranno salvati nella riga successiva; fare riferimento all'immagine sotto:
- Possiamo cambiare l'intervallo nella macro sopra che si adatta alle nostre esigenze
Conclusione: Con la macro sopra possiamo copiare le celle dalla riga activecell a un nuovo foglio usando il codice VBA.
Se ti è piaciuto il nostro blog, condividilo con i tuoi amici su Facebook. E puoi anche seguirci su Twitter e Facebook.
Ci piacerebbe avere tue notizie, facci sapere come possiamo migliorare, completare o innovare il nostro lavoro e renderlo migliore per te. Scrivici al sito di posta elettronica