Copiare una riga o righe di un foglio di database utilizzando VBA in Microsoft Excel
-
I codici di esempio verranno copiati in un foglio di database con il nome Sheet2.
-
Ogni volta che esegui uno dei sottotitoli, le celle verranno posizionate sotto l’ultima riga con i dati o dopo l’ultima colonna con i dati in sheet2.
-
Per ogni esempio c’è una macro che esegue una copia normale e una che è solo Copia i valori.
-
I sottotitoli di esempio utilizzano le funzioni seguenti (le macro non funzioneranno senza le funzioni).
Sub CopyRow() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Sheet2")) + 1 Set sourceRange = Sheets("Sheet1").Rows("1:1") Set destrange = Sheets("Sheet2").Rows(Lr) sourceRange.Copy destrange End Sub Sub CopyRowValues() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Sheet2")) + 1 Set sourceRange = Sheets("Sheet1").Rows("1:1") Set destrange = Sheets("Sheet2").Rows(Lr). _ Resize(sourceRange.Rows.Count) 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