Copiare le cellule dal ActiveCell riga su un foglio database utilizzando VBA in Microsoft Excel
In Microsoft Excel, possiamo copiare celle dalla riga activecell a un foglio specifico. In questo articolo useremo 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 in sheet2. Questa macro copierà le celle dalla colonna A, D dall’ActiveCell._
Di seguito è riportata l’immagine dei dati di esempio:
Per copiare celle dalla riga activecell a Sheet2; dobbiamo seguire i passaggi seguenti per avviare l’editor VB:
Fare clic sulla scheda Sviluppatore. Dal gruppo Codice selezionare Visual Basic
===
-
Fare clic su Inserisci quindi su 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") Set 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") With sourceRange Set destrange = Sheets("Sheet2").Range("A" _ & Lr).Resize(.Rows.Count, .Columns.Count) End With destrange.Value = sourceRange.Value End Sub
Function 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
Function Lastcol(sh As Worksheet) On Error Resume Next 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 i 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 in “Foglio2” a partire da A1
-
Se eseguiamo di nuovo questa macro; i dati verranno salvati nella riga successiva; fare riferimento all’immagine sottostante:
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 in un nuovo foglio utilizzando il codice VBA.
Se i nostri blog ti sono piaciuti, condividilo con i tuoi amici su Facebook. E anche tu puoi seguirci su Twitter e Facebook.
_ Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare, integrare o innovare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]_