Strona główna Makra / VBA Wydobywanie liczby z tekstu

Wybrana funkcja

  • LEWY, LEWYB
    Zwraca skrajne lewe znaki z wartości tekstowej.
Makra / VBA
Wydobywanie liczby z tekstu

W trakcie prac nad różnymi arkuszami kalkulacyjnymi pojawia się czasem potrzeba konwersji tekstu na liczbą, bądź wydobycie liczby z tekstu. W pierwszym przypadku sprawa jest prosta ponieważ wystarczy pomnożyć tekst przez 1 i otrzymamy już liczbę. Drugi przypadek jest bardziej skomplikowany.

Aby wydobyć z tekstu liczbę należy napisać własną funkcję, która to będzie robiła. W dzisiejszym artykule, zastosuję prostsze rozwiązanie, które nie będzie brało pod uwagę znaku liczby, jak również nie będzie znajdowało części ułamkowej liczby. Poniżej znajduje się kod funkcji, która dysponuje wspomniana funkcjonalnością:

Function ExtractNumber(cell As Range)

    Dim i As Long
    Dim cellText As String
    Dim numberText As String
    cellText = cell
    numberText = ""
    For i = Len(cellText) To 1 Step -1
        If IsNumeric(Mid(cellText, i, 1)) Then
            numberText = Mid(cellText, i, 1) & numberText
        End If
    Next i
    ExtractNumber = CDec(numberText)
    'ExtractNumber = CLng(numberText)
    'ExtractNumber = CDbl(numberText)

End Function

Na szczególną uwagę zasługują następujące linijki:

ExtractNumber = CDec(numberText)
'ExtractNumber = CLng(numberText)
'ExtractNumber = CDbl(numberText)

W zależności od tego na jaki typ ma zostać zamieniona liczba należy od-komentować odpowiednią linię. Pierwsza odpowiada typowi decimal, druga – long, a trzecia double. Jeżeli zostanie przekroczony zakres wyniku to zostanie wyświetlony błąd #ARG!.

Poniżej znajduje się przykład zastosowania tej funkcji:

 

Funkcja ExtractNumber - Portal Excel w Biznesie.pl

 

Dodaj swój komentarz

Twoje imię:
Twój e-mail:
Temat:
Komentarz:

Pytanie do eksperta

JoomlaWatch Stats 1.2.9 by Matej Koval

Logowanie