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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *