Questo tutorial ti insegnerà come interagire con i valori delle celle usando VBA.
Imposta valore cella
Per impostare un valore di cella, utilizzare la proprietà Value dell'oggetto Range o Cells.
Intervallo.Valore e Celle.Valore
Esistono due modi per fare riferimento alle celle in VBA:
- Oggetto intervallo - Intervallo ("A2"). Valore
- Oggetto Celle - Celle(2,1).Valore
L'oggetto Range consente di fare riferimento a una cella utilizzando la notazione standard "A1".
Questo imposterà il valore dell'intervallo A2 = 1:
1 | Intervallo ("A2"). Valore = 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:
1 | Celle(2,1).Valore = 1 |
Nota che inserisci prima il numero di riga:
1 | Celle(Numero_riga, num_colonna) |
Imposta 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 delle celle contemporaneamente:
1 | Intervallo ("A2: A5"). Valore = 1 |
Imposta valore cella - Testo
Negli esempi precedenti, impostiamo il valore della cella uguale a un numero (1). Invece, puoi impostare il valore della cella uguale a una stringa di testo. In VBA, tutto il testo deve essere circondato da virgolette:
1 | Intervallo ("A2"). Valore = "Testo" |
Se non racchiudi il testo tra virgolette, VBA penserà che fai riferimento a una variabile…
Imposta valore cella - Variabile
Puoi anche impostare un valore di cella uguale a una variabile
1234 | Dim strText as StringstrText = "Stringa di testo"Intervallo ("A2"). Valore = strText |
Ottieni valore cella
Puoi ottenere i valori delle celle usando la stessa proprietà Value che abbiamo usato sopra.
Ottieni valore ActiveCell
Per ottenere il valore ActiveCell e visualizzarlo in una finestra di messaggio:
1 | MsgBox ActiveCell.Value |
Assegna valore cella a variabile
Per ottenere un valore di cella e assegnarlo a una variabile:
123 | Dim var come Variantvar = Intervallo ("A1"). Valore |
Qui abbiamo usato una variabile di tipo Variant. Le variabili varianti possono accettare qualsiasi tipo di valore. Invece, potresti usare un tipo di variabile String:
123 | Dim var as Stringvar = Intervallo ("A1"). Valore |
Un tipo di variabile String accetterà valori numerici, ma memorizzerà i numeri come testo.
Se sai che il valore della tua cella sarà numerico, puoi utilizzare un tipo di variabile Double (le variabili Double possono memorizzare valori decimali):
123 | Dim var come Doublevar = Intervallo ("A1"). Valore |
Tuttavia, se tenti di memorizzare un valore di cella contenente testo in una doppia variabile, riceverai un errore di mancata corrispondenza del tipo:
Altri esempi di valori di cella
Copia valore cella
È facile impostare un valore di cella uguale a un altro valore di cella (o "Copia" un valore di cella):
1 | Intervallo ("A1"). Valore = Intervallo ("B1"). Valore |
Puoi anche farlo con intervalli di celle (gli intervalli devono avere le stesse dimensioni):
1 | Intervallo ("A1: A5"). Valore = Intervallo ("B1: B5"). Valore |
Confronta i valori delle celle
Puoi confrontare i valori delle celle utilizzando gli operatori di confronto standard.
Verifica se i valori delle celle sono uguali:
1 | MsgBox Range("A1").Value = Range("B1").Value |
Restituirà TRUE se i valori delle celle sono uguali. Altrimenti FALSO.
Puoi anche creare un'istruzione If per confrontare i valori delle celle:
12345678910111213 | If Range("A1").Value > Range("B1").Value ThenIntervallo ("C1"). Valore = "Maggiore di"Elseif Range("A1").Value = Range("B1").Value ThenIntervallo ("C1"). Valore = "Uguale"AltroIntervallo ("C1"). Valore = "Minore di"Finisci se |
Puoi confrontare il testo allo stesso modo (ricorda che VBA fa distinzione tra maiuscole e minuscole)