VBA Dizeyi Değiştir | VBA Kullanarak Dizedeki Metin Nasıl Değiştirilir?

Excel VBA Dizeyi Değiştir

Değiştir, hem Çalışma Sayfası işlevi hem de VBA işlevidir. Bu işlev, dizedeki belirli bir sözcüğü başka bir dizeyle değiştirmemize yardımcı olur. VBA'daki Substitute işlevine benzer şekilde çalışır.

Test dizesi veya metin veri değerleri ile uğraşırken, bir şeyi başka bir şeyle değiştirmek veya ikame etmek, iki hücre verisini bire birleştirmek veya bir hücre verisini birden çok şeye bölmek apaçık bir şeydir. Bunların hepsi işyerimizde her gün yaptığımız ortak görevlerdir.

Öyleyse, dizedeki bir kelimeyi başka bir kelimeyle nasıl değiştiririz? Örneğin, dize "Hindistan gelişmekte olan bir ülke ve Asya Ülkesinde Hindistan" ise, bu dizeden "Hindistan" kelimesini değiştirip "Bharath" olarak değiştirmemiz gerekir.

Bu, Değiştir işlevini kullanarak mümkündür. Bu yazıda, VBA kodlamasında dizeleri nasıl değiştireceğinizi göstereceğiz.

İşlevi Değiştir

  • İfade: Bu, bir şeyi bir şeyle değiştirmeye çalıştığımız orijinal dize değerinden başka bir şey değildir. Aşağıdaki bir örnek için, "Hindistan gelişmekte olan bir ülke ve Asya Ülkesinde Hindistan" ifade dizesidir.
  • Find String: Değiştirmeye çalıştığımız dizge nedir. Örneğin, İfade dizesindeki "Hindistan" kelimesini değiştirmeye çalışıyoruz.
  • Dizgeyi Değiştirin: Bulma Dizesini değiştirdiğimiz yedek dizge nedir ? Dolayısıyla, bu durumda, "Hindistan" kelimesini "Bharath" ile değiştirmeye çalışıyoruz.
  • [Başlat]: Bu isteğe bağlı bir parametredir. Yukarıdaki dizede (İfade) iki kelimemiz var "Hindistan", bu nedenle Bulma Dizesinin hangi konumundan değiştirme işlemini başlatmamız gerekir. Örneğin 2 dersek, ikinci pozisyondan itibaren "Hindistan" kelimesinin yerini almaya başlayacaktır.
  • [Kont]: Eğer Bul Dize birden fazla kez görünüyor İfade biz değiştirmeniz gerektiğini kaç kelime sonra.

Örneğin, "Hindistan" kelimesi 5 kez görünüyorsa ve sayımı 3 olarak verirseniz, yalnızca ilk 3 "Hindistan" kelimesinin yerini alacaktır.

VBA Kullanarak Dizedeki Metin Nasıl Değiştirilir?

Bu VBA Değiştirme Dize Excel Şablonunu buradan indirebilirsiniz - VBA Dize Değiştir Excel Şablonu

Örnek 1

Şimdi "Hindistan" kelimesini aşağıdaki dize değerinden "Bharath" ile değiştirmeye çalışacağız.

"Hindistan gelişmekte olan bir ülke ve Asya Ülkesinde Hindistan"

İlk olarak, şimdi excel makro prosedürünü başlatın.

Kod:

 Sub Replace_Example () End Sub 

VBA değişkenini String olarak tanımlayın.

Kod:

 Sub Replace_Example () Dim NewString As String End Sub 

Bu değişkende "Hindistan" kelimesini "Bharath" ile değiştirdikten sonra yeni dize değerini göstereceğiz. Bu değişken için Değiştir işlevini açın.

Bu işlevin ilk argümanı "İfade" dir, yani hangi dizeden bir kelimeyi değiştirmeye çalışıyoruz, bu nedenle "Hindistan gelişmekte olan bir ülkedir ve Asya Ülkesinde Hindistan" dizesini kopyalayıp yapıştırın.

Bir sonraki argüman "Find String", yani hangi kelimeyi değiştirmemiz gerekiyor, yani "Hindistan".

Sonraki argüman "Dizgeyi Değiştir", yani "Hindistan" yani "Bharath" kelimesini değiştirmemiz gereken dizedir.

Tamam, şu an itibariyle kalan argümanları görmezden gelin. Şimdi sonucu mesaj kutusunda gösterin.

Kod:

 Sub Replace_Example () Dim NewString As String NewString = Değiştir ("Hindistan gelişmekte olan bir ülkedir ve Hindistan Asya Ülkesidir", "Hindistan", "Bharath") MsgBox NewString End Sub 

Kodu F5 tuşunu kullanarak veya manuel olarak çalıştıralım ve yeni string sonucunu görelim.

Tamam, yukarıdaki sonuca bakın nerede "Hindistan" kelimesini bulursak, "Bharath" kelimesi ile değiştirilmiştir.

Örnek 2

Şimdi aynı kodu değişkenlerle nasıl kullanacağımızı göreceğiz. Aşağıdaki koda bakın.

Kod:

 Sub Replace_Example1 () Dim NewString As String Dim MyString As String FindString Dim FindString As String ReplaceString As String MyString = "Hindistan gelişmekte olan bir ülke ve Hindistan Asya Ülkesi" FindString = "Hindistan" ReplaceString = "Bharath" NewString = Değiştir (MyString , FindString, ReplaceString) MsgBox NewString End Sub 

Yukarıdaki kodda, fazladan üç değişken tanımladım.

 Dim MyString As String Dim FindString As String Dim ReplaceString As String 

Bu değişkenler için, İfade Dizesi, Bulma Dizesi ve Değiştirme Dizesi sağlamak yerine değerler atadım, Değiştir işlevine yalnızca değişken sağlayacağız.

Bu kod da aynı sonucu verir, ancak tek fark, işleve doğrudan değer sağlamak yerine değişkenler kullanmış olmamızdır.

Örnek 3

"Hindistan" kelimesini yalnızca ikinci pozisyondan değiştirmek istediğinizi varsayalım, o zaman Değiştir fonksiyon parametresini ["Başlat"] kullanmamız gerekir . Bilgileriniz için aşağıdaki koda bakın.

Kod:

 Sub Replace_Example2 () Dim NewString As String Dim MyString As String FindString Dim FindString As String ReplaceString As String MyString = "Hindistan gelişmekte olan bir ülke ve Hindistan Asya Ülkesidir" FindString = "Hindistan" ReplaceString = "Bharath" NewString = Değiştir (MyString , FindString, ReplaceString, Start: = 34) MsgBox NewString End Sub 

Önceki koddan eklediğimiz fazladan bir tek şey 34 olarak “Başlat” parametresidir. Şimdi kodu çalıştırın ve sonucu görün.

Artık yalnızca dizenin 34. karakterinden sonra "Hindistan" ve "Bharath" ile değiştirilen dizeyi görebiliriz.

Örnek 4

Now for an example, if we want to replace only the first occurrence of the word “India” to “Bharath” then we need to use [“Count”] parameter of the Replace function.

Below is the code for you.

Code:

 Sub Replace_Example3() Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "India is a developing country and India is the Asian Country" FindString = "India" ReplaceString = "Bharath" NewString = Replace(MyString, FindString, ReplaceString, Count:=1) MsgBox NewString End Sub 

Run the code manually or through the F5 key and see the result.

As you can see above it has replaced only the first occurrence of the word “India” to “Bharath” and the second instance remains the same.

Things to Remember Here

  • Replace is a string function family in VBA.
  • In VBA, the replace function replaces all the supplied words with replaced string if the count parameter is not specified.
  • The start parameter will delete the number of characters supplied and show the remaining result.