VBA – Selezionare (e lavorare con) intere righe e colonne – Automatizzare ExcelAutomatizzare Excel
Questo tutorial dimostrerà come selezionare e lavorare con intere righe o colonne in VBA.
Selezionare intere righe o colonne
Selezionare una singola riga
Puoi selezionare un’intera riga con l’oggetto Rows come questo:
Rows(5).Select
O puoi usare EntireRow insieme agli oggetti Range o Cells:
Range("B5").EntireRow.Select
o
Cells(5,1).EntireRow.Select
Si può anche usare l’oggetto Range per riferirsi specificamente ad una riga:
Range("5:5").Select
Seleziona una singola colonna
Invece dell’oggetto Righe, usa l’oggetto Colonne per selezionare le colonne. Qui potete fare riferimento alla colonna numero 3:
Columns(3).Select
o alla lettera “C”, circondata da virgolette:
Columns("C").Select
Invece di EntireRow, usate EntireColumn insieme agli oggetti Range o Cells per selezionare intere colonne:
Range("C5").EntireColumn.Select
o
Cells(5,3).EntireColumn.Select
Si può anche usare l’oggetto Range per riferirsi specificamente ad una colonna:
Range("B:B").Select
Selezionare più righe o colonne
Selezionare più righe o colonne funziona esattamente come quando si usa EntireRow o EntireColumn:
Range("B5:D10").EntireRow.Select
o
Range("B5:B10").EntireColumn.Select
Tuttavia, quando usate gli oggetti Rows o Columns, dovete inserire i numeri delle righe o le lettere delle colonne tra virgolette:
Rows("1:3").Select
oppure
Columns("B:C").Select
Seleziona la riga o la colonna di ActiveCell
Per selezionare la riga o la colonna di ActiveCell, puoi usare una di queste righe di codice:
ActiveCell.EntireRow.Select
o
ActiveCell.EntireColumn.Select
Seleziona Righe e Colonne su altri fogli di lavoro
Per selezionare Righe o Colonne su altri fogli di lavoro, devi prima selezionare il foglio di lavoro.
Sheets("Sheet2").SelectRows(3).Select
Lo stesso vale per la selezione di righe o colonne in altre cartelle di lavoro.
Workbooks("Book6.xlsm").ActivateSheets("Sheet2").SelectRows(3).Select
Nota: È necessario attivare la cartella di lavoro desiderata. A differenza dell’oggetto Fogli, l’oggetto Cartella di lavoro non ha un metodo Select.
Selezionare Righe e Colonne è necessario?
Tuttavia, non è (quasi?) mai necessario selezionare Righe o Colonne. Non è necessario selezionare una riga o una colonna per interagire con esse. Invece, si possono applicare metodi o proprietà direttamente alle righe o alle colonne. Le prossime sezioni dimostreranno diversi metodi e proprietà che possono essere applicati.
Puoi usare qualsiasi metodo elencato sopra per fare riferimento a Righe o Colonne.
Metodi e proprietà delle righe & Colonne
Cancellare intere righe o colonne
Per cancellare righe o colonne, usare il metodo Cancella:
Rows("1:4").Delete
o:
Columns("A:D").Delete
Inserire righe o colonne
Utilizzare il metodo Inserisci per inserire righe o colonne:
Rows("1:4").Insert
o:
Columns("A:D").Insert
Copia & Incolla intere righe o colonne
Incolla in una riga o colonna esistente
Quando copi e incolli intere righe o colonne hai bisogno di decidere se vuoi incollare sopra una riga / colonna esistente o se vuoi inserire una nuova riga / colonna per incollare i tuoi dati.
Questi primi esempi copieranno e incolleranno sopra una riga o colonna esistente:
Range("1:1").Copy Range("5:5")
o
Range("C:C").Copy Range("E:E")
Insert & Paste
I prossimi esempi incolleranno in una riga o colonna appena inserita.
Questo copierà la riga 1 e la inserirà nella riga 5, spostando le righe esistenti in basso:
Range("1:1").CopyRange("5:5").Insert
Questo copierà la colonna C e la inserirà nella colonna E, spostando le colonne esistenti a destra:
Range("C:C").CopyRange("E:E").Insert
Nascondi / Deseleziona righe e colonne
Per nascondere righe o colonne imposta le loro proprietà nascoste su True. Usa False per nascondere le righe o le colonne:
'Hide RowsRows("2:3").EntireRow.Hidden = True'Unhide RowsRows("2:3").EntireRow.Hidden = False
o
'Hide ColumnsColumns("B:C").EntireColumn.Hidden = True'Unhide ColumnsColumns("B:C").EntireColumn.Hidden = False
Group / UnGroup Rows and Columns
Se vuoi raggruppare righe (o colonne) usa un codice come questo:
'Group RowsRows("3:5").Group'Group ColumnsColumns("C:D").Group
Per rimuovere il raggruppamento usa questo codice:
'Ungroup RowsRows("3:5").Ungroup'Ungroup ColumnsColumns("C:D").Ungroup
Questo espanderà tutti i livelli di contorno “raggruppati”:
ActiveSheet.Outline.ShowLevels RowLevels:=8, ColumnLevels:=8
e questo farà collassare tutti i livelli di contorno:
ActiveSheet.Outline.ShowLevels RowLevels:=1, ColumnLevels:=1
Imposta l’altezza della riga o la larghezza della colonna
Per impostare la larghezza della colonna usare questa linea di codice:
Columns("A:E").ColumnWidth = 30
Per impostare l’altezza della riga usare questa linea di codice:
Rows("1:1").RowHeight = 30
Autofit Row Height / Column Width
Per Autofittare una colonna:
Columns("A:B").Autofit
Per Autofittare una riga:
Rows("1:2").Autofit
Righe e colonne su altri fogli di lavoro o cartelle di lavoro
Per interagire con righe e colonne su altri fogli di lavoro, è necessario definire l’oggetto Fogli:
Sheets("Sheet2").Rows(3).Insert
Analogamente, per interagire con righe e colonne in altre cartelle di lavoro, è necessario definire anche l’oggetto Cartella di lavoro:
Workbooks("book1.xlsm").Sheets("Sheet2").Rows(3).Insert
Rileva riga o colonna attiva
Per ottenere la riga o colonna attiva, è possibile utilizzare le proprietà riga e colonna dell’oggetto ActiveCell.
MsgBox ActiveCell.Row
o
MsgBox ActiveCell.Column
Questo funziona anche con l’oggetto Range:
MsgBox Range("B3").Column