Cambia testo in numero usando VBA

Sommario:

Anonim

In un'attività recente, stavo filtrando tramite VBA su una colonna numerica. Ma quella colonna numerica aveva numeri in formato testo. Quando ho eseguito lo script VBA, ovviamente non ha funzionato, perché il filtro era un numero e la colonna aveva numeri come testo. In tal caso, avevo bisogno di convertire manualmente il testo in numeri e salvarlo. Quindi la macro ha funzionato perfettamente. Ma volevo convertire questi testi in numeri usando lo script VBA e sono stato in grado di farlo. Volevo condividerlo come se qualcuno volesse sapere come convertire i valori di testo in un numero usando VBA, può dare un'occhiata.

Converti il ​​testo in numero usando il metodo Range.NumberFormat

Questo primo e più semplice metodo. Preferisco questo metodo rispetto ad altri metodi in quanto converte direttamente l'intervallo excel selezionato in formato numerico.

Quindi, se hai un intervallo fisso che vuoi convertire in testo, usa questo frammento VBA.

Sub ConvertTextToNumber() Range("A3:A8").NumberFormat = "General" Range("A3:A8").Value = Range("A3:A8").Value End Sub 

Quando esegui il codice sopra, converte il testo dell'intervallo A3: A8 in testo.

Questo codice può sembrare più elegante se lo scriviamo in questo modo.

Sub ConvertTextToNumber() With Range("A3:A8") .NumberFormat = "General" .Value = .Value End With End Sub 

Come funziona?

Bene, è abbastanza semplice. Per prima cosa cambiamo il formato numerico dell'intervallo in Generale. Quindi inseriamo il valore di quell'intervallo nello stesso intervallo usando VBA. Questo rimuove completamente la formattazione del testo. Semplice, no?

Modificare il numero di formattazione di un intervallo dinamico

Nel codice sopra, abbiamo cambiato il testo in numero nel codice sopra di un intervallo fisso, ma questo non sarà il caso la maggior parte delle volte. Per convertire il testo in un numero di intervalli dinamici, possiamo valutare l'ultima cella utilizzata o selezionare l'intervallo in modo dinamico.

Ecco come sarebbe:

Sub ConvertTextToNumber() With Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) .NumberFormat = "General" .Value = .Value End With 

Ecco, so che il range parte da A3. Ma non so dove potrebbe finire.
Quindi identifico dinamicamente l'ultima riga excel utilizzata che contiene dati utilizzando lo snippet VBA Cells(Rows.Count, 1).End(xlUp).Row. Restituisce l'ultimo numero di riga utilizzato che stiamo concatenando con "A3:A".

Nota: Questo frammento VBA funzionerà sulla cartella di lavoro attiva e sul foglio di lavoro attivo. Se il tuo codice passa attraverso più fogli, sarebbe meglio impostare un oggetto intervallo del foglio di lavoro previsto. Come questo

Sub ConvertTextToNumber() Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) With Rng .NumberFormat = "General" .Value = .Valore End With End Sub 

Il codice sopra cambierà sempre il testo nel numero del foglio1 della cartella di lavoro che contiene questo codice.

Loop e CSng per cambiare il testo in numero

Un altro metodo è quello di scorrere ogni cella e modificare il valore della cella in un numero utilizzando la funzione CSng. Ecco il codice.

Sub ConvertTextToNumberLoop() Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) Per ogni cel In Rng.Cells cel.Value = CSng(cel.Value) Next cel End Sub 

Nello snippet VBA sopra, stiamo usando VBA For loop per scorrere su ogni cella nell'intervallo e convertire il valore di ogni cella in un numero usando la funzione CSng di VBA.

Quindi sì ragazzi, è così che puoi cambiare i testi in numeri in Excel usando VBA. Puoi usare questi frammenti per preparare il tuo foglio di lavoro prima di eseguire qualsiasi operazione numerica su di essi. Spero di essere stato abbastanza esplicativo. Puoi scaricare il file di lavoro qui.

Cambia testo in numero usando VBA.

In caso di dubbi sulla conversione da testo a numero o su qualsiasi altra query relativa a Excel/VBA, chiedere nella sezione commenti qui sotto.

Come ottenere testo e numero al contrario tramite VBA in Microsoft Excel | Per invertire il numero e il testo usiamo i loop e la funzione mid in VBA. 1234 sarà convertito in 4321, "tu" sarà convertito in "uoy". Ecco il frammento.

Formattare i dati con formati numerici personalizzati utilizzando VBA in Microsoft Excel | Per modificare il formato del numero di colonne specifiche in Excel, usa questo frammento VBA. Converte il formato numerico del formato specificato nel formato specificato con un clic.

Articoli popolari:

50 scorciatoie di Excel per aumentare la produttività | Diventa più veloce nel tuo compito. Queste 50 scorciatoie ti faranno lavorare ancora più velocemente su Excel.

La funzione CERCA.VERT in Excel | Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare il valore da diversi intervalli e fogli.

CONTA.SE in Excel 2016 | Conta i valori con le condizioni usando questa fantastica funzione. Non è necessario filtrare i dati per contare un valore specifico. La funzione Countif è essenziale per preparare la tua dashboard.

Come utilizzare la funzione SOMMA.SE in Excel | Questa è un'altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.