Sommario
In questo articolo, discuteremo diversi metodi per convertire una stringa in un numero in Excel VBA. Vedremo come utilizzare le funzioni integrate e come creare una funzione personalizzata per convertire una stringa in un numero con esempi di codice VBA.
Scarica il quaderno di esercizi
Scaricate questo quaderno di esercizi per esercitarvi durante la lettura di questo articolo.
Convertire stringa in numero.xlsm3 modi per convertire una stringa in un numero in Excel VBA
1. Convertire una stringa in un numero utilizzando le funzioni di conversione di tipo
Excel mette a disposizione diversi strumenti integrati funzioni di conversione di tipo Possiamo utilizzarli nel nostro codice VBA per convertire facilmente il tipo di dati stringa in altri tipi di dati.
1.1 Da stringa a intero
Per convertire stringa a intero , possiamo utilizzare il metodo Funzione CInt nel nostro codice. Funzione CInt richiede solo un argomento e questo dovrebbe essere un valore numerico Proviamo il seguente codice nell'editor di codice visivo.
Sub StringToNumber() MsgBox CInt(12.3) End Sub
Stampa F5 a corsa il codice Il risultato è mostrato nella finestra MsgBox .
La funzione CInt convertito il stringa numerica valore ("12.3" ) ad un intero 12.
Per saperne di più sul Funzione CInt eseguire il seguente codice nell'editor di codice e osservare il risultati .
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CInt(Cells(i, 2)) Next End Sub
Il uscita è qui nel seguente schermata .
Codice Spiegazione
In questo codice, abbiamo usato il metodo Per...ciclo successivo per applicare il Funzione CInt sulle stringhe di cellule B3:B7. Il uscite sono stampati nelle celle C3:C7. Abbiamo utilizzato il Funzione delle cellule per specificare i valori di ingresso e dove stampare i valori di uscita.
Risultati
La funzione CInt convertito 25,5 al numero intero successivo 26 D'altra parte, è convertito 10.3 a 10, non 11 Quando un valore numerico decimale è inferiore a 0,5, la funzione arrotonda per difetto allo stesso numero. Ma la funzione decimale il valore numerico della stringa si trasforma nel valore intero successivo numero se è pari a o maggiore di .5.
Nota
Il valore intero ha un intervallo compreso tra -32,768 a 32,767 Se si inserisce un valore numerico che sia fuori da questo intervallo , Excel mostrerà un errore .
1.2 Da stringa a lungo
Il Funzione CLng converte un valore numerico di stringa in un valore tipo di dato long Funziona in modo simile alla funzione CInt. La differenza principale risiede nella funzione gamma che si trova tra -2,147,483,648 e 2,147,483,647.
Il codice da eseguire è riportato di seguito: Sub StringToNumber() For i = 3 To 9 Cells(i, 3).Value = CLng(Cells(i, 2)) Next End Sub
Qui, le cellule B3:B9 contengono alcuni valore numerico della stringa , e convertito l numeri di telefono sono in celle C3:C9. Il Funzione CLng convertito -32800 e 32800 con successo a numeri lunghi che il Funzione CInt Ma otterrà anche un errore se l'ingresso valore numerico è fuori dal raggio d'azione.
1.3 Da stringa a decimale
Utilizzando il Funzione CDec possiamo convertire a valore numerico della stringa a un tipo di dato decimale. Esegui il seguente codice per convertire il valori numerici nelle cellule B3:B7 alla tipo di dato decimale.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CDec(Cells(i, 2)) Next End Sub
1.4 Da stringa a singolo
In questo esempio, trasformeremo le stringhe di input in singolo tipo di dato (numeri a virgola mobile a singola precisione). A tal fine, è necessario utilizzare l'opzione Funzione CSng .
Il singolo tipo di dato ranges- (i) -3,402823E38 a -1.401298E-45 per negativo numeri.
(ii) 1.401298E-45 a 3.402823E38 per positivo numeri.
Eseguite il seguente codice nell'editor di Visual Basic.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub
Nell'output, le celle B3:B9 contengono alcuni valore numerico della stringa, e numeri convertiti di tipo singolo sono in celle C3:C9. Ma otterrà anche un errore se l'ingresso valore numerico è fuori dal raggio d'azione.
1.5 Da stringa a doppio
In questo esempio, trasformeremo le stringhe di input in tipo di dato double (numeri in virgola mobile a doppia precisione). A tal fine, è necessario utilizzare l'opzione Funzione CDbl .
Il tipo di dato double spazia- (i) -1,79769313486231E308 a -4.94065645841247E-324 per negativo numeri.
(ii) 4.94065645841247E-324 a 1.79769313486232E308 per positivo numeri.
Eseguite il seguente codice nell'editor di Visual Basic.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub
Nell'output, le celle B3:B9 contengono alcuni valore numerico della stringa e numeri convertiti di tipo double sono in celle C3:C9. Ma otterrà anche un errore se l'ingresso valore numerico è fuori dal raggio d'azione.
1.6 Da stringa a valuta
Il tipo di dati della valuta è utile quando i calcoli sono legati a denaro Inoltre, se vogliamo una maggiore precisione nel fisso - punto calcolo L'uso del tipo di dati currency è una buona scelta. Dobbiamo usare il metodo Funzione CCur per convertire una stringa in un elemento tipo di dati della valuta Il tipo di dati gamme da -922,337,203,685,477.5808 a 922,337,203,685,477.5808.
Codice a convertire valore numerico di stringa di cellule B3:B7 a tipo di dati della valuta nelle cellule C3:C7 è qui sotto.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CCur(Cells(i, 2)) Next End Sub
1.7 Da stringa a byte
Il Funzione CByte converte i valori numerici delle stringhe nel formato tipo di dati byte che varia da Da 0 a 255.
Codice è la seguente :
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CByte(Cells(i, 2)) Next End Sub
Nell'output, le celle B3:B9 contengono alcuni valore numerico della stringa, e numeri di tipo byte convertiti sono in celle C3:C9. Ma otterrà anche un errore se l'ingresso valore numerico è fuori dal raggio d'azione.
Per saperne di più: Come convertire una stringa in un numero lungo utilizzando VBA in Excel
Letture simili
- Convertire una stringa in un doppio in Excel VBA (5 metodi)
- Come convertire un testo in un numero con Excel VBA (3 esempi con macro)
- Correggere l'errore di conversione in numero in Excel (6 metodi)
- Come convertire la notazione scientifica in numero in Excel (7 metodi)
2. Uso di una funzione VBA personalizzata per controllare e convertire una stringa in un numero in Excel
In questa illustrazione, faremo un'immagine di funzione personalizzata per convertire le stringhe in numeri. Possiamo quindi utilizzo questo funzione personalizzata nel nostro foglio di lavoro come un funzione integrata In questo esempio, si utilizzerà l'opzione Funzione CInt a convertire stringhe a numeri interi mentre si crea il file funzione personalizzata. Potremmo anche utilizzare tutte le altre funzioni descritto in metodo 1 per convertire corde a diversi tipi di dati A questo punto, seguite i passaggi seguenti per ottenere questo risultato.
Passi:
- Qui, nelle cellule B3:B7, abbiamo alcuni valori numerici di stringa.
- Ora, nell'editor di Visual Basic, copia e pasta il seguente codice e poi premere Ctrl + S a salvare
Function StringToNumber(inputStr) Dim convertedNum As Variant If IsNumeric(inputStr) Then If IsEmpty(inputStr) Then convertedNum = "-" Else convertedNum = CInt(inputStr) End If Else convertedNum = "-" End If StringToNumber = convertedNum End Function
- In cella C3 , iniziare a digitare il nome della funzione ( Da stringa a numero ). Excel suggerisce automaticamente il funzione da utilizzare. Stampa il Tasto Tab per accedere alla funzione.
- Mettere il riferimento cella B3 come unico argomento.
- Ora, premere Entrare dopo aver chiuso le parentesi.
- Individuare il Maniglia di riempimento al angolo inferiore destro di cella C3 a applicare la funzione alle cellule C4:C7.
- L'output finale è costituito dagli ambiti numeri interi dei valori delle stringhe.
3. Codice VBA per convertire un intervallo selezionato di celle in numeri in Excel
In questa illustrazione, convertiremo un file gamma di cellule selezionate contenenti valori stringa in numeri interi. Se una cella contiene un valore non numerico in esso, l'output sarà un trattino (-) linea invece . Segui il passi :
- Selezionare le celle B3:B6 avendo stringhe numeriche e B7 che contiene un non numerico
- Nel Editor Visual Basic copia e pasta il seguente codice .
Sub StringToNumber() Dim convertedNum As Variant For Each cell In Selection If IsNumeric(cell) Then If IsEmpty(cell) Then convertedNum = "-" Else convertedNum = CInt(cell) End If Else convertedNum = "-" End If With cell .Value = convertedNum.HorizontalAlignment = xlCenter End With Next cell End Sub
- Ora, premere F5 a corsa il uscita come mostrato di seguito schermata .
Note
- Abbiamo utilizzato il Funzione isNumeric nel 2° e 3° metodi nel nostro codice VBA che controlla se un'espressione può essere convertita in un numero.
- In metodo 1 abbiamo utilizzato le funzioni integrate (CInt, CDbl, CSng.....) per convertire i valori numerici in stringhe a numeri Ma se c'è un valore non numerico , mostrerà un errore di mancata corrispondenza .
Conclusione
Ora sappiamo come convertire i valori stringa in numeri in Excel. Speriamo che questo vi incoraggi a usare questa funzionalità con maggiore sicurezza. Per qualsiasi domanda o suggerimento, non dimenticate di inserirlo nella casella dei commenti qui sotto.