Come ottenere, impostare o modificare il valore di una cella

Questo tutorial ti insegnerà come interagire con i valori delle celle usando VBA.

Impostare il valore di una cella

Per impostare il valore di una cella, utilizza la proprietà Value dell’oggetto Range Cells.

Range.Value e Cells.Value

Esistono due modi per fare riferimento alle celle in VBA:

  • Range Object – Range(“A2”).Value
  • Cells Object – Cells(2,1).Value

L’oggetto Range consente di fare riferimento a una cella usando la notazione standard “A1”.

Questo imposterà il valore dell’intervallo A2 = 1:

 
Range("A2").Value = 1

L’oggetto Cells ti consente di fare riferimento a una cella in base al numero di riga e al numero di colonna.

Questo imposterà il valore dell’intervallo A2 = 1:

 
Cells(2,1).Value = 1

Si noti che va immesso prima il numero di riga:

 
Cells(Row_num, Col_num) 

 

Impostare i valori di più celle contemporaneamente

Invece di fare riferimento a una singola cella, puoi fare riferimento a un intervallo di celle e modificare tutti i valori di cella contemporaneamente:

 
Range("A2:A5").Value = 1

 

Impostare il valore di una cella come Testo

Negli esempi precedenti, abbiamo impostato il valore della cella uguale a un numero. Puoi anche impostare il valore della cella uguale a una stringa di testo. In VBA, il testo deve essere racchiuso tra virgolette:

 
Range("A2").Value = "Testo"

Se non racchiudi il testo tra virgolette, VBA penserà che stai facendo riferimento a una variabile…

 

Impostare il valore di una cella uguale a una Variabile

Puoi anche impostare il valore di una cella uguale a una variabile:

 
Dim strText as String
strText = "Stringa di Testo"

Range("A2").Value = strText

 

Ottenere il valore di una cella

Puoi ottenere i valori di cella usando la stessa proprietà Value che abbiamo usato sopra.

Ottenere il valore della cella attiva

Per ottenere il valore della cella attiva e visualizzarlo in una finestra di messaggio:

 
MsgBox ActiveCell.Value

Assegnare il valore di una cella a variabile

Per ottenere il valore di una cella e assegnarlo a una variabile:

 
Dim var as Variant

var = Range("A1").Value

Qui abbiamo usato una variabile di tipo Variant. Le variabili Variant possono accettare qualsiasi tipo di valore. Invece, potresti usare un tipo di variabile String:

 
Dim var as String

var = Range("A1").Value 

Un tipo di variabile String accetterà valori numerici, ma memorizzerà i numeri come testo.

Se sai che il valore della tua cella sarà numerico, potresti usare un tipo di variabile Double (le variabili Double possono memorizzare valori decimali):

 
Dim var as Double

var = Range("A1").Value

Tuttavia, se si tenta di memorizzare un valore di cella contenente testo in una variabile Double, verrà visualizzato un errore:

Come ottenere, impostare o modificare il valore di una cella 1


Altri esempi con il valore di cella

Copiare il valore di una cella

È facile impostare un valore di cella uguale al valore di un’altra cella (o “Copiare” un valore di cella):

 
Range("A1").Value = Range("B1").Value

Puoi persino farlo con intervalli di celle (gli intervalli devono avere le stesse dimensioni):

 
Range("A1:A5").Value = Range("B1:B5").Value

 

Confrontare i valori delle celle

Verificare se i valori di cella sono uguali:

 
MsgBox Range("A1").Value = Range("B1").Value

Restituirà VERO se i valori della cella sono uguali. Altrimenti FALSO.

Puoi anche creare un’istruzione If per confrontare i valori di cella:

 
If Range("A1").Value > Range("B1").Value Then

     Range("C1").Value = "Maggiore di"

Elseif Range("A1").Value = Range("B1").Value Then

     Range("C1").Value = "Uguale"

Else

     Range("C1").Value = "Minore di"

End If

Puoi confrontare il testo allo stesso modo (ricorda che VBA è case sensitive)