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 quel caso, dovevo 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 utilizzando VBA, possono dare un’occhiata.

===

image

Converti testo in numero utilizzando il metodo Range.NumberFormat Questo primo e più semplice metodo. Preferisco questo metodo rispetto ad altri metodi poiché converte direttamente l’intervallo Excel selezionato in formato numerico.

Quindi, se hai un intervallo fisso che desideri convertire in testo, utilizza 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?

Ebbene, è 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. Ciò rimuove completamente la formattazione del testo. Semplice no?

Modifica 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 dinamicamente.

Ecco come apparirebbe:

Sub ConvertTextToNumber()

With Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row)

.NumberFormat = "General"

.Value = .Value

End With

Ecco, so che la gamma parte da A3. Ma non so dove possa finire.

Quindi identifico dinamicamente link: / tips-how-to-find-the-last-used-cell-in-one-column-in-microsoft-excel-2010 [last used excel row] 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 codice passa da più fogli, sarebbe meglio impostare un oggetto intervallo del foglio di lavoro previsto. In questo modo

Sub ConvertTextToNumber()

Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row)

With Rng

.NumberFormat = "General"

.Value = .Value

End With

End Sub

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

Loop e CSng per modificare 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)



For Each cel In Rng.Cells

cel.Value = CSng(cel.Value)

Next cel

End Sub

Nello snippet VBA sopra, stiamo usando link: / vba-for-loops-with-7-examples [VBA For loop] per iterare su ogni cella dell’intervallo e convertire il valore di ogni cella in un numero usando il link: / excel-macros-and-vba-what-is-csng-function-in-excel-vba [CSng function of VBA].

Quindi sì ragazzi, è così che puoi cambiare i testi in numeri in Excel usando VBA. È possibile utilizzare questi frammenti per preparare il 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.

`link: /wp-content-uploads-2020-01-Change-Text-to-Number-Using-VBA.xls [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.

Articoli correlati:

link: / formating-in-vba-format-table-depend-on-number-formati-using-vba-in-microsoft-excel [Formattare i dati con formati numerici personalizzati utilizzando VBA in Microsoft Excel] | Per modificare il formato numerico di colonne specifiche in Excel, utilizzare questo frammento di codice VBA. Converte il formato numerico del formato specificato nel formato specificato con un clic.

Articoli popolari:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-aumentare-la-produttività [50 scorciatoie Excel per aumentare la produttività] | Diventa più veloce nel tuo compito. Queste 50 scorciatoie ti faranno lavorare ancora più velocemente su Excel.

link: / formule-e-funzioni-introduzione-di-vlookup-funzione [La funzione CERCA.VERT in Excel] | Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare valori da diversi intervalli e fogli. link: / tips-countif-in-microsoft-excel [COUNTIF in Excel 2016] | Contare i valori con le condizioni utilizzando questa straordinaria funzione. Non è necessario filtrare i dati per contare un valore specifico.

La funzione Countif è essenziale per preparare la tua dashboard.

link: / excel-formula-and-function-excel-sumif-function [Come usare la funzione SUMIF in Excel] | Questa è un’altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.