Proprietà Row, Column e Proprietà Address

Prima di illustrare questo argomento vorrei poter presentare un nuovo metodo che uso in questa applicazione per definire ed utilizzare i riferimenti di celle facendo uso della Proprietà Address.

 

Questa è la tabella usata per i nostri esercizi.

Cognome Nome
Di Maggio Mario
Scicchitano Andrea
Maggi Massimo
Edelvisi Maurizio
Gerardini Silvano
Pasotti Alessio
Calvi Giovanni
Poggi Giuseppe
Curti Oreste
Borsotti Mirella
Franchinotti Anna

 

 

Il metodo Cells(Riga,Colonna)

E' uso comune definire le coordinate di una cella ricercandone la rispettiva riga e colonna come negli esempi seguenti:

L'ESPRESSIONE RESTITUISCE
PrimaRiga = Range("A2").Row il numero della riga di A2
PrimaColonna = Range("A2").Column il numero della colonna di A2
UltimaRiga = Range("A2").End(xlDown).Row il numero dell'ultima riga della tabella che parte da A2
Ultimacolonna = Range("A1").End(xlToRight).Column Il numero dell'ultima colonna della tabella che parte A2
URiga = 1
While Cells(URiga , 1) <> ""
URiga = URiga + 1
Wend
un altro modo di trovare l'ultima riga di una tabella che parte da A1

 

Una volta definite le coordinate di riga e/o di colonna, è possibile usarle nei nostri riferimenti come nell'esempio qui di seguito riportati:

Sub provaCells()
Dim PrimaRiga, PrimaColonna, UltimaRiga, Ultimacolonna
PrimaRiga = Range("A2").Row
PrimaColonna = Range("A2").Column
UltimaRiga = Range("A2").End(xlDown).Row
Ultimacolonna = Range("A1").End(xlToRight).Column
Range(Cells(PrimaRiga, 2), Cells(PrimaRiga, 2).End(xlDown)).Select
Range(Cells(PrimaRiga, PrimaColonna), Cells(UltimaRiga, Ultimacolonna)).Select
End Sub

 

Il metodo Range("A1")

Questa volta vedremo come trovare ed utilizzare un altro metodo: la Proprietà Address.

Per quel che ci interessa in questa esercitazione, tale Proprietà va usata con questa sintassi:

espressione.Address(rowabsolute:=False, columnabsolute:=False)

Nella tabella che segue vedremo quali sono le varie sintassi che possiamo usare. Gli argomenti racchiusi tra le parentesi dopo la parola chiave Address sono opzionali e, se omessi, equivalgono a TRUE, come si evince dagli ultimi due esempi qui di seguito trascritti:

L'ESPRESSIONE RESTITUISCE
Coord = Range("A1").Address(rowabsolute:=False, columnabsolute:=False) A1
Coord = Range("A1").Address(rowabsolute:=False) $A1
Coord = Range("A1").Address(columnabsolute:=False) A$1
Coord = Range("A1").Address(rowabsolute:=True, columnabsolute:=True) $A$1
Coord = Range("A1").Address $A$1

Come si può notare dalle varie sintassi usate, gli argomenti rowabsolute e columnabsolute possono essere impostate a False o True restituendo un riferimento alla cella come relativo, assoluto o misto (presenza o meno del simbolo "$" prima del riferimento di riga e/o colonna).

Questo è un esempio di utilizzo di tali coordinate:

Sub prova()
Dim Coord As String, CellaPart As String, CellaArr As String
Dim CL As Range
' Cerco gli indirizzi delle celle sotto indicate
Coord = Range("A2").Address'          trovo la coordinata nella forma $A$2
CellaPart = Range("A1").Address(False, False) '          trovo la coordinata nella forma A1 F10
CellaArr = Range("F10").Address(False, False)
For Each CL In Range(CellaPart & ":" & CellaArr)
CL = Int(Rnd() * 100) '         scrivo dei numeri casuali nell'intervallo "A1:F10"
Next
Range(Coord).Offset(0, 1).EntireColumn.Delete '          elimino la seconda colonna
Range(CellaPart & ":" & CellaArr).Select '          seleziono l'intervallo "A1:F10"
End Sub