Co tydzień otrzymuję arkusz kalkulacyjny, a z różnych przyczyn pozostających poza moją kontrolą niektóre kolumny wychodzą jako tekst zapisany jako liczby, a nie liczby. Muszę przekonwertować je na liczby dla rzeczy, które zdarzają się z nimi później w kodzie.Konwertowanie określonego zakresu kolumn z tekstu na format liczbowy za pomocą VBA
jestem przekształcając je do liczb w tej chwili w ten sposób:
Dim rng As Range
For Each rng In Range("A:D").Columns
rng.TextToColumns
Next rng
Czy istnieje lepszy (czyli bardziej wydajne) sposób to zrobić?
Grałem z NumberFormat i wydawało się, że nie działa.
Z góry dziękuję (i przepraszam, jeśli opuściłem rozwiązanie już tutaj - przeszukałem go i nie znalazłem).
zrobiłbym tak: rng.Value = rng.Value. Powinien przekształcić tekst na liczby. Po prostu niewielkim błędem, jeśli masz jakąkolwiek formułę w zakresie, to zamieniłbyś ją na zwykłą wartość. Istnieje jednak łatwe obejście tego problemu. Ale to powinno wystarczyć. – Vikas
Należy zauważyć, że metoda @Vikas nie działa ze wszystkimi ustawieniami regionalnymi, w zależności od ich separatora dziesiętnego. Na przykład w niemieckim języku, jeśli zastosujesz wartość ".Value = .Value" do zakresu, tylko liczby całkowite zostaną przekonwertowane na liczby. Jest to zakres z treścią tekstową: 1 | 2 | 0,5 staje się * 1 * | * 2 * | ** 0,5 ** w przypadku, gdy kursywa jest konwertowana na liczby, ale pogrubiona część jest nadal tylko tekstem. –