Jak przekonwertować ciąg na długi w vba (z przykładami)


Możesz użyć funkcji CLng w VBA, aby przekonwertować ciąg tekstowy na długi typ danych.

Oto dwa popularne sposoby wykorzystania tej funkcji w praktyce:

Metoda 1: Konwertuj ciąg na długi w VBA

 Sub ConvertStringToLong ()

    Dim i As Integer

    For i = 2 To 11
        Range(" B " & i) = CLng(Range(" A " & i))
    Next i

End Sub

To konkretne makro skonwertuje każdy ciąg z zakresu A2:A11 na długi typ danych i wyświetli długie wartości z zakresu B2:B11 .

Metoda 2: Konwertuj ciąg na długi w VBA (tylko jeśli ciąg jest liczbą)

 Sub ConvertStringToLong()

    Dim i As Integer

    For i = 2 To 11
        If IsNumeric(Range(" A " & i)) Then
            Range(" B " & i) = CLng(Range(" A " & i))
        Else
            Range(" B " & i) = 0
        End If
    Next i

End Sub

To konkretne makro skonwertuje każdy ciąg z zakresu A2:A11 na długi typ danych tylko wtedy, gdy ciąg jest liczbą. W przeciwnym razie ciąg zostanie przekonwertowany na wartość null.

Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.

Przykład 1: Konwertuj ciąg na długi w VBA

Załóżmy, że mamy w Excelu następującą kolumnę wartości, obecnie sformatowaną jako ciągi tekstowe:

Załóżmy, że chcemy przekonwertować każdy ciąg na długi typ danych i wyświetlić go w kolumnie B.

W tym celu możemy utworzyć następujące makro:

 Sub ConvertStringToLong ()

    Dim i As Integer

    For i = 2 To 11
        Range(" B " & i) = CLng(Range(" A " & i))
    Next i

End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

VBA konwertuje ciąg na długi

Należy pamiętać, że każdy ciąg tekstowy w kolumnie A został przekonwertowany na długi typ danych i jest wyświetlany w kolumnie B.

Przykład 2: Konwertuj ciąg na długi w VBA (tylko jeśli ciąg jest liczbą)

Załóżmy, że mamy w Excelu następującą kolumnę wartości, obecnie sformatowaną jako ciągi tekstowe:

Załóżmy, że chcemy przekonwertować każdy ciąg na długi typ danych tylko wtedy, gdy ciąg jest liczbą i wyświetlić je w kolumnie B.

W tym celu możemy utworzyć następujące makro:

 Sub ConvertStringToLong()

    Dim i As Integer

    For i = 2 To 11
        If IsNumeric(Range(" A " & i)) Then
            Range(" B " & i) = CLng(Range(" A " & i))
        Else
            Range(" B " & i) = 0
        End If
    Next i

End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Należy pamiętać, że tylko ciągi tekstowe w kolumnie A będące liczbami są konwertowane na długie typy danych w kolumnie B.

W przeciwnym razie ciągi tekstowe są po prostu konwertowane na wartość null.

Uwaga : Pełną dokumentację funkcji VBA CLng można znaleźć tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak usunąć spacje z ciągu znaków
VBA: Jak liczyć wystąpienia znaków w ciągu
VBA: jak sprawdzić, czy ciąg zawiera inny ciąg

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *