VBA Konwertuj ciąg tekstowy na numer

Może być konieczne przekonwertowanie liczb zapisanych jako tekst na rzeczywiste liczby w kodzie VBA. W tym samouczku omówimy funkcje, których potrzebujesz, aby przekonwertować ciąg na typ danych całkowitych, długich, podwójnych, dziesiętnych lub walutowych (Kliknij tutaj, aby dowiedzieć się, jak konwertować liczby na ciągi)

Konwertuj ciąg na liczbę całkowitą

Możesz użyć funkcji CInt lub CLng, aby przekonwertować ciąg na liczbę całkowitą. Jeśli ułamek jest mniejszy niż 0,5, funkcja zaokrągla w dół, jeśli ułamek jest większy lub równy 0,5, funkcja zaokrągla w górę. Poniższy kod skonwertuje ciąg na liczbę całkowitą:

1 MsgBox CInt("7,55")

Wynik to:

Poniższy kod używa funkcji CLng do konwersji ciągu na liczbę całkowitą:

1 MsgBox CLng("13,5")

Wynik to:

Notatka: Możesz użyć funkcji CInt lub CLng, aby przekonwertować ciąg na liczbę całkowitą lub długie (odpowiednio) typy danych. Typ danych długich jest taki sam jak typ danych całkowitych, z wyjątkiem tego, że dozwolone są większe liczby. W przeszłości rozróżnienie było wymagane ze względu na ograniczenia pamięci. We współczesnym programowaniu nie ma powodu, aby nie używać długiego typu danych, ponieważ pamięć nie jest już problemem. Dlatego zawsze lepiej jest używać długiego typu danych zamiast liczby całkowitej.

Możesz użyć okna bezpośredniego, aby zobaczyć, jak wartość zostanie przetworzona, jeśli nie zostanie przekonwertowana na liczbę całkowitą:

1 Debug.Drukuj „13,5” + „13,5”


Zwykle tekst będzie przechowywany jako zmienna i ta zmienna będzie musiała zostać przekonwertowana na typ danych liczbowych, jak pokazano w poniższym kodzie:

1234567 Sub using_Variables()Wartość przyciemnienia Jeden jako ciągwartośćjeden = 5MsgBox CLng(valueOne) + CLng(valueOne)Napis końcowy

Konwertuj ciąg na dziesiętny

Możesz użyć funkcji CDbl lub CDec, aby przekonwertować ciąg na ułamek dziesiętny. Poniższy kod przekonwertuje ciąg na podwójny typ danych:

1 MsgBox CDbl("9.1819")

Wynik to:

Poniższy kod przekonwertuje ciąg na typ danych dziesiętnych:

1 MsgBox CDec("13.57") + CDec("13.4")

Wynik to:

Możesz użyć okna bezpośredniego, aby zobaczyć, jak wartość zostanie przetworzona, jeśli nie zostanie przekonwertowana na podwójny lub dziesiętny typ danych:

1 Debug.Drukuj "13.57" + "13.4"

Wynik to:

Notatka: Typ danych dziesiętnych może przechowywać większe liczby niż typ danych podwójnych, więc zawsze zaleca się używanie typu danych dziesiętnych, gdy nie masz pewności.

Konwertuj ciąg na walutę

Możesz użyć funkcji CCur, aby przekonwertować ciąg na walutę. Poniższy kod przekonwertuje ciąg na typ danych waluty:

1 Zakres("A1").Wartość = CCur("18,5")

Wynik to:

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave