Funzione VBA Val

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 si fornisce la stringa di testo "1234 Global", verrà restituita 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.

Sintassi

Ha un solo argomento, ovvero String.

  • 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

È possibile scaricare questo modello Excel di funzione Val VBA qui - Modello Excel di funzione Val VBA

Esempio 1

Proviamo il primo esempio con un numero semplice, ad esempio "14 56 47"

Di seguito il codice è per te.

Codice:

 Sub Val_Example1 () Dim k As Variant k = Val ("14 56 47") 'Converti quanto sopra come 145647 MsgBox k End Sub 

Quando esegui il codice VBA usando il tasto F5 o manualmente, restituirà il risultato come "145647" ignorando tutti i caratteri di spazio come mostrato nell'immagine sottostante.

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 

È possibile eseguire questo codice manualmente o tramite il tasto F5 per restituire il valore come 456 ignorando +456.

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 

Questo codice restituirà il valore -456 solo perché dovrebbe essere visualizzato il numero con il segno dell'operatore.

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 

Se esegui questo codice manualmente o usando il tasto F5, questo codice sopra ignora "KG" e restituisce solo "100" nella finestra di messaggio VBA.

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

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.

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

Questo estrarrà i numeri finché non trova il carattere non numerico, cioè il risultato è 7459. Anche se ci sono valori numerici dopo il valore non numerico "Buono", ignora completamente i numeri dopo di questo.

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

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.

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

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.