Viene inviato un foglio di calcolo ogni settimana, e per vari motivi fuori dal mio controllo alcune colonne escono come testo memorizzato come numeri anziché come numeri. Ho bisogno di convertirli in numeri per cose che succedono con loro più avanti nel codice.Conversione di un certo intervallo di colonne dal testo al formato numerico con VBA
li sto convertendo ai numeri, al momento in questo modo:
Dim rng As Range
For Each rng In Range("A:D").Columns
rng.TextToColumns
Next rng
Esiste un migliore (vale a dire più efficiente) modo di fare questo?
Ho giocato con NumberFormat e non sembra funzionare.
Grazie in anticipo (e mi scuso se ho perso una soluzione già qui - ho fatto una ricerca e non l'ho trovato).
vorrei fare in questo modo: rng.Value = rng.Value. Dovrebbe convertire il testo in numeri. Solo un piccolo problema, tuttavia, se hai una formula nell'intervallo, converte anche la formula in valore normale. Ci sono soluzioni facili per questo problema. Ma quello dovrebbe fare il trucco. – Vikas
Nota che il metodo di @Vikas non funziona con tutte le versioni locali, a seconda del rispettivo separatore decimale. Ad esempio, nelle impostazioni locali tedesche, se si applica ".Value = .Value" a un intervallo, solo i numeri interi verranno convertiti in numeri. Questo è un intervallo con il contenuto del testo: 1 | 2 | 0,5 diventa * 1 * | * 2 * | ** 0,5 ** dove le parti in corsivo vengono convertite in numeri ma la parte in grassetto è ancora solo testo. –