Funzione Val VBA di Excel
La funzione Val in vba rientra nelle funzioni stringa, è anche una funzione incorporata in VBA che viene utilizzata per ottenere i valori numerici da una variabile di dati, supponiamo che se una variabile ha valore come A10, la funzione val ci darà 10 come output, prende una stringa come argomento e restituisce i numeri presenti nella stringa.
VAL sta per VALUE nella terminologia VBA. Questa funzione converte la stringa contenente i numeri in un numero effettivo. Ad esempio, se fornisci la stringa di testo "1234 Global", restituirà solo la parte numerica, ovvero 1234.
Spesso, quando scarichiamo o otteniamo i dati dai numeri web, di solito vengono memorizzati come valori di testo in un foglio di calcolo. La conversione del testo in numeri è il compito più difficile se non sei a conoscenza della funzione corretta in Excel. Come una normale funzione del foglio di lavoro, abbiamo una funzione chiamata VALORE, che convertirà tutta la stringa che rappresenta i numeri in numeri esatti con una semplice funzione nel foglio di lavoro. In questo articolo, mostreremo come questo può essere ottenuto in VBA utilizzando la funzione VAL.
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples.png.webp)
Sintassi
Ha un solo argomento, ovvero String.
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_2.png.webp)
- Stringa: è semplicemente un valore di stringa che stiamo cercando di ottenere dalla parte numerica.
Quindi, la funzione VAL converte la stringa fornita in un valore numerico.
Nota: la funzione VAL ignora sempre i caratteri spazio e continua a leggere i numeri dopo il carattere spazio oi caratteri.Ad esempio, se la stringa fornita è "145 45 666 3", ignorerà i caratteri spazio e restituirà il risultato come "145456663".
Esempi di funzione VAL in Excel VBA
Esempio 1
Proviamo il primo esempio con un numero semplice, ad esempio "14 56 47".
Il codice seguente è per te.
Codice:
Sub Val_Example1 () Dim k As Variant k = Val ("14 56 47") 'Converti quanto sopra come 145647 MsgBox k End Sub
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_3.png.webp)
Quando esegui il codice VBA utilizzando il tasto F5 o manualmente, restituirà il risultato come "145647" ignorando tutti i caratteri di spazio come mostrato nell'immagine sottostante.
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples.gif)
Esempio n. 2
In questo esempio, vedremo qual è il risultato della stringa "+456".
Codice:
Sub Val_Example2 () Dim k As Variant k = Val ("+ 456") 'Converti quanto sopra come 456 MsgBox k End Sub
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_4.png.webp)
È possibile eseguire questo codice manualmente o tramite il tasto F5 per restituire il valore come 456 ignorando +456.
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_5.png.webp)
Esempio n. 3
Ora proviamo lo stesso numero con un segno negativo.
Codice:
Sub Val_Example3 () Dim k As Variant k = Val ("- 456") 'Converti quanto sopra come -456 MsgBox k End Sub
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_6.png.webp)
Questo codice restituirà il valore -456 solo perché dovrebbe essere visualizzato il numero con il segno dell'operatore.
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_7.png.webp)
Esempio n. 4
Ora proviamo questa stringa “100 Kg”.
Codice:
Sub Val_Example4 () Dim k As Variant k = Val ("100 KG") 'Ignora KG e restituisce solo 100 MsgBox k End Sub
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_8.png.webp)
Se esegui questo codice manualmente o utilizzando il tasto F5, questo codice sopra ignora "KG" e restituisce solo "100" nella finestra di messaggio VBA.
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_2.gif)
Esempio n. 5
Ora prova la stringa della data, ad esempio "14-05-2018".
Codice:
Sub Val_Example5 () Dim k As Variant k = Val ("14-05-2019") 'Restituisce 14 come risultato. MsgBox k End Sub
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_9.png.webp)
Il codice sopra restituisce 14 come risultato perché la funzione VAL può solo recuperare il valore numerico finché non trova un carattere diverso da quello numerico.
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_3.gif)
Esempio # 6
Ora prova la stringa "7459Good456".
Codice:
Sub Val_Example6 () Dim k As Variant k = Val ("7459 Good 456") 'Restituisce 7459 come risultato. MsgBox k End Sub
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_10.png.webp)
Questo estrarrà i numeri finché non trova il carattere non numerico, ovvero il risultato è 7459. Anche se ci sono valori numerici dopo il valore non numerico "Buono", ignora completamente i numeri.
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_11.png.webp)
Esempio # 7
Ora prova il valore della stringa "H 12456".
Codice:
Sub Val_Example7 () Dim k As Variant k = Val ("H 12456") 'Restituisce 0 come risultato. MsgBox k End Sub
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_12.png.webp)
Esegui il codice sopra usando il tasto di scelta rapida F5 o manualmente, quindi restituisce il risultato come zero. Poiché il primo carattere della stringa che abbiamo fornito è un carattere non numerico, il risultato è zero.
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_4.gif)
Esempio n. 8
Ora prova questa stringa "24545. 2 ".
Codice:
Sub Val_Example8 () Dim k As Variant k = Val ("24545. 2") 'Restituisce 24545,2 come risultato. MsgBox k End Sub
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_13.png.webp)
Il codice restituisce il risultato come 24545.2 perché la funzione VBA VAL considera il carattere punto (.) Come carattere decimale e restituisce il risultato di conseguenza.
![](https://cdn.know-base.net/6904043/vba_val_how_to_use_vba_val_function_with_examples_14.png.webp)