Vba: jak usunąć ostatni znak z ciągu


Możesz użyć następującej podstawowej składni, aby usunąć ostatni znak z ciągu za pomocą VBA:

 Sub RemoveLastChar()

    Dim i As Integer
    Dim myString As String

    For i = 2 To 11
    myString = Range(" A " & i)
    Range(" B " & i) = Left(myString, Len(myString) - 1)
    Next i
    
End Sub

Ten konkretny przykład usuwa ostatni znak z każdego ciągu w zakresie A2:A11 i wyświetla wyniki w zakresie B2:B11 .

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: użycie VBA do usunięcia ostatniego znaku z ciągów

Załóżmy, że mamy w Excelu następującą listę nazw drużyn koszykarskich:

Załóżmy, że chcemy usunąć ostatni znak z nazwy każdego zespołu.

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

 Sub RemoveLastChar()

    Dim i As Integer
    Dim myString As String

    For i = 2 To 11
    myString = Range(" A " & i)
    Range(" B " & i) = Left(myString, Len(myString) - 1)
    Next i
    
End Sub

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

VBA usuwa ostatni znak z ciągu

Kolumna B wyświetla każdy ciąg z kolumny A z usuniętym ostatnim znakiem.

Jeśli zamiast tego chcesz usunąć n ostatnich znaków z ciągu, po prostu zamień 1 w metodzie Left na inną liczbę.

Na przykład możemy utworzyć następujące makro, aby usunąć 2 ostatnie znaki z ciągu:

 Sub RemoveLastTwoChar()

    Dim i As Integer
    Dim myString As String

    For i = 2 To 11
    myString = Range(" A " & i)
    Range(" B " & i) = Left(myString, Len(myString) - 2)
    Next i
    
End Sub

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

Kolumna B wyświetla każdy ciąg z kolumny A z usuniętymi dwoma ostatnimi znakami.

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

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania przy użyciu języka VBA:

VBA: Jak liczyć wystąpienia znaków w ciągu
VBA: jak sprawdzić, czy ciąg zawiera inny ciąg
VBA: Jak liczyć komórki zawierające określony tekst

Dodaj komentarz

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