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:
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