W ostatnim zadaniu filtrowałem przez VBA w kolumnie liczbowej. Ale ta kolumna liczbowa zawierała liczby w formacie tekstowym. Kiedy uruchamiam skrypt VBA, to oczywiście nie działało, ponieważ filtrem była liczba, a kolumna zawierała liczby jako tekst. W takim przypadku musiałem ręcznie przekonwertować tekst na liczby i go zapisać. Wtedy makro zadziałało idealnie. Ale chciałem przekonwertować te teksty na liczby za pomocą skryptu VBA i udało mi się to zrobić. Chciałem się tym podzielić tak, jakby ktoś chciał wiedzieć, jak przekonwertować wartości tekstowe na liczbę za pomocą VBA, może na to spojrzeć.
Konwertuj tekst na liczbę za pomocą metody Range.NumberFormat
To pierwsza i najłatwiejsza metoda. Wolę tę metodę od innych metod, ponieważ bezpośrednio konwertuje wybrany zakres programu Excel na format liczbowy.
Jeśli więc masz ustalony zakres, który chcesz przekonwertować na tekst, użyj tego fragmentu kodu VBA.
Sub ConvertTextToNumber() Range("A3:A8").NumberFormat = "Ogólne" Range("A3:A8").Value = Range("A3:A8").Value End Sub
Po uruchomieniu powyższego kodu konwertuje on tekst z zakresu A3:A8 na tekst.
Ten kod może wyglądać bardziej elegancko, jeśli napiszemy go w ten sposób.
Sub ConvertTextToNumber() With Range("A3:A8") .NumberFormat = "Ogólne" .Value = .Value Koniec z końcem Sub
Jak to działa?
Cóż, to całkiem proste. Najpierw zmieniamy format liczbowy zakresu na Ogólne. Następnie umieszczamy wartość tego zakresu w tym samym zakresie za pomocą VBA. To całkowicie usuwa formatowanie tekstu. Proste, prawda?
Zmień liczbę formatowania zakresu dynamicznego
W powyższym kodzie zmieniliśmy tekst na numer w powyższym kodzie o ustalonym zakresie, ale w większości przypadków tak nie będzie. Aby przekonwertować tekst na wiele zakresów dynamicznych, możemy ocenić ostatnio używaną komórkę lub dynamicznie wybrać zakres.
Tak by to wyglądało:
Sub ConvertTextToNumber() With Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) .NumberFormat = "Ogólne" .Value = .Value Koniec z
Tutaj wiem, że zasięg zaczyna się od A3. Ale nie wiem, gdzie może się to skończyć.
Tak więc dynamicznie identyfikuję ostatnio używany wiersz programu Excel, który zawiera dane, używając fragmentu kodu VBA Cells(Rows.Count, 1).End(xlUp).Row. Zwraca ostatni użyty numer wiersza, który łączymy z „A3:A”.
Notatka: Ten fragment kodu VBA będzie działał na aktywnym skoroszycie i aktywnym arkuszu. Jeśli twój kod przełącza się między wieloma arkuszami, lepiej ustawić obiekt zakresu zamierzonego arkusza. Lubię to
Sub ConvertTextToNumber() Set Rng = ThisWorkbook.Sheets("Arkusz1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) With Rng .NumberFormat = "Ogólne" .Value = .Wartość Koniec z końcem Sub
Powyższy kod zawsze zmieni tekst na numer arkusza Sheet1 skoroszytu zawierającego ten kod.
Pętla i CSng, aby zmienić tekst na numer
Inną metodą jest przejście przez każdą komórkę i zmiana wartości komórki na liczbę za pomocą funkcji CSng. Oto kod.
Sub ConvertTextToNumberLoop() Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) For Each cell In Rng.Cells cel.Value = CSng(cel.Value) Następna komórka End Sub
W powyższym fragmencie VBA używamy pętli VBA For, aby iterować po każdej komórce w zakresie i konwertować wartość każdej komórki na liczbę za pomocą funkcji CSng VBA.
Więc tak, w ten sposób możesz zmienić teksty na liczby w Excelu za pomocą VBA. Możesz użyć tych fragmentów kodu, aby przygotować arkusz roboczy przed wykonaniem na nim jakiejkolwiek operacji na liczbach. Mam nadzieję, że wystarczająco wyjaśniłem. Tutaj możesz pobrać plik roboczy.
Zmień tekst na numer za pomocą VBA.
Jeśli masz jakiekolwiek wątpliwości dotyczące konwersji tekstu na numer lub innego zapytania związanego z programem Excel / VBA, zapytaj w sekcji komentarzy poniżej.
Jak uzyskać tekst i numer w odwrotnej kolejności przez VBA w programie Microsoft Excel | Aby odwrócić liczbę i tekst, używamy pętli i funkcji mid w VBA. 1234 zostanie zamienione na 4321, „ty” zostanie zamienione na „uoy”. Oto fragment.
Formatuj dane za pomocą niestandardowych formatów liczb za pomocą VBA w programie Microsoft Excel | Aby zmienić format liczb określonych kolumn w programie Excel, użyj tego fragmentu kodu VBA. Zapisuje format liczb o określonym formacie za pomocą jednego kliknięcia.
Popularne artykuły:
50 skrótów Excela, które zwiększą Twoją produktywność | Przyspiesz swoje zadanie. Te 50 skrótów przyspieszy pracę w programie Excel.
Funkcja WYSZUKAJ.PIONOWO w programie Excel | Jest to jedna z najczęściej używanych i popularnych funkcji programu Excel, która służy do wyszukiwania wartości z różnych zakresów i arkuszy.
LICZ.JEŻELI w Excelu 2016 | Policz wartości z warunkami za pomocą tej niesamowitej funkcji. Nie musisz filtrować danych, aby policzyć konkretną wartość. Funkcja Countif jest niezbędna do przygotowania deski rozdzielczej.
Jak korzystać z funkcji SUMIF w programie Excel? | To kolejna ważna funkcja deski rozdzielczej. Pomaga to zsumować wartości w określonych warunkach.