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 o 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:
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)