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:

image 1

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

image 2

===

  • Fare clic su Inserisci quindi su Modulo

image 3

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

image 4

image 5

===

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

image 6

  • Se eseguiamo di nuovo questa macro; i dati verranno salvati nella riga successiva; fare riferimento all’immagine sottostante:

image 7

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.

image 48

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]_