Copia le celle dalla riga ActiveCell a un foglio di database utilizzando VBA in Microsoft Excel

Sommario

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

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave