Vba: jak zamienić znaki w ciągu znaków


Aby zastąpić znaki w ciągu znaków, możesz użyć metody Zamień() w języku VBA.

Ta metoda wykorzystuje następującą podstawową składnię:

Zamień (wyrażenie, znajdź, zamień, rozpocznij, policz)

Złoto:

  • wyrażenie : Ciąg, w którym chcesz zamienić znaki
  • find : ciąg do znalezienia
  • zamień : Ciąg znaków, który ma zostać użyty jako zamiennik
  • start ( opcjonalnie ) : Pozycja początkowa w ciągu do wyszukania
  • count ( opcjonalnie ) : Liczba zamian do wykonania

Poniższe przykłady pokazują, jak zastosować tę metodę w praktyce z poniższą listą ciągów w Excelu:

Przykład 1: Użyj VBA, aby zastąpić wszystkie wystąpienia znaków w ciągu (wielkość liter ma znaczenie)

Powiedzmy, że chcemy zamienić „to” na „TAK” w każdym ciągu.

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

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(Range(" A " & i), " this ", " THAT ")
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, przy każdym wystąpieniu „tego” zastąpionego przez „TAK”.

Należy pamiętać, że w tej zamianie rozróżniana jest wielkość liter .

Oznacza to, że każde wystąpienie „tego” jest zastępowane, ale każde wystąpienie „tego” pozostaje bez zmian.

Przykład 2: Użyj języka VBA do zamiany wszystkich wystąpień znaków w ciągu (wielkość liter nie ma znaczenia)

Powiedzmy, że chcemy zastąpić „to” (niezależnie od przypadku) słowem „TAK” w każdym ciągu.

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

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", " THAT ")
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, przy każdym wystąpieniu „tego” zastąpionego przez „TAK”.

Należy pamiętać, że w tej zamianie nie jest rozróżniana wielkość liter .

Oznacza to, że każde wystąpienie „tego” (pisanego wielką literą lub nie) jest zastępowane.

Udało nam się wykonać tę zamianę bez uwzględniania wielkości liter, używając metody LCase , aby najpierw przekonwertować każdy ciąg w kolumnie A na małe litery przed wyszukaniem „tego” w każdym ciągu.

Przykład 3: Użyj VBA, aby zastąpić pierwsze N wystąpień znaku w ciągu

Załóżmy, że chcemy zastąpić tylko pierwsze wystąpienie „tego” (niezależnie od przypadku) słowem „TAK” w każdym ciągu.

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

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", " THAT ", Count:=1)
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, przy czym tylko pierwsze wystąpienie słowa „to” zostało zastąpione przez „TAK”.

Zauważ, że użyliśmy Count:=1 do zastąpienia tylko pierwszego wystąpienia określonego ciągu, ale możesz zastąpić 1 dowolną wartością, którą chcesz zastąpić pierwsze n wystąpień określonego ciągu.

Uwaga : Pełną dokumentację metody VBA Apply znajdziesz 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 *