Vba: come copiare linee visibili su un altro foglio
È possibile utilizzare la seguente sintassi in VBA per copiare solo le righe visibili da un foglio all’altro:
SubCopyVisibleRows ()
Dim sourceWS As Worksheet
Dim destinationWS As Worksheet
Set sourceWS = ThisWorkbook.Sheets(" Sheet1 ")
Set destinationWS = ThisWorkbook.Sheets(" Sheet2 ")
sourceWS.Range(" A1:D999 ").SpecialCells(xlCellTypeVisible).Copy
destinationWS.Cells(1, 1).PasteSpecial
Application.CutCopyMode = False
End Sub
Questa particolare macro copierà ogni riga visibile nell’intervallo A1:D999 di Sheet1 e le incollerà iniziando nella cella A1 di Sheet2 .
Nota : la riga Application.CutCopyMode = False specifica che la modalità taglia e copia deve essere disabilitata dopo l’esecuzione della macro.
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: copiare le righe visibili su un altro foglio utilizzando VBA
Supponiamo di avere il seguente set di dati nel Foglio 1 che contiene informazioni su vari giocatori di basket:
Supponiamo ora di applicare un filtro al set di dati per mostrare solo le righe in cui il nome della squadra è uguale a Mavs o Spurs:
Ora supponiamo di voler utilizzare VBA per copiare solo le celle visibili da Foglio1 a Foglio2.
Per fare ciò possiamo creare la seguente macro:
SubCopyVisibleRows ()
Dim sourceWS As Worksheet
Dim destinationWS As Worksheet
Set sourceWS = ThisWorkbook.Sheets(" Sheet1 ")
Set destinationWS = ThisWorkbook.Sheets(" Sheet2 ")
sourceWS.Range(" A1:D999 ").SpecialCells(xlCellTypeVisible).Copy
destinationWS.Cells(1, 1).PasteSpecial
Application.CutCopyMode = False
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output in Sheet2 :
Tieni presente che ogni riga visibile in Sheet1 è stata copiata e incollata in Sheet2 .
Nota n. 1 : abbiamo utilizzato xlCellTypeVisible nella macro per specificare che volevamo copiare solo celle visibili.
Nota n. 2 : puoi trovare la documentazione completa per il metodo Copia VBA qui .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come trovare l’ultima riga utilizzata
VBA: copia le righe su un altro foglio in base a criteri
VBA: come incollare solo valori senza formattazione