Bu öğretici, metin dizelerini değiştirmek için VBA Değiştir işlevinin nasıl kullanılacağını gösterecektir.
İşlevi Değiştir
VBA Replace işlevi, yapılan ikamelerle bir dize döndürür. İsteğe bağlı parametrelerin kullanımıyla, yeni dize, orijinal dizenin sonunda başlangıç ve bitiş ile belirtilen konumda başlayabilir.
VBA Değiştirme Bir Alt Dizeyi Değiştir
VBA Değiştir işlevi, bulunan her parçada bulunan herhangi bir alt dizeyi değiştirmek için kullanılabilir.
12345678910111213141516 | Alt ReplaceExample_1()MsgBox Replace("ABCABCABC", "A", "!")'Sonuç: "!BC!BC!BC"MsgBox Replace("Pembe, kırmızı ve siyahı severim", "pembe", "mor")'Sonuç: "Mor, kırmızı ve siyahı severim"MsgBox Değiştir("A, B, C, A, B, C, A, B, C", ", ", ",")'Sonuç: "ABCABCABC"MsgBox Replace("ABCABCABC", "ABC", "!")'Sonuç: "!!!"MsgBox Replace("ABCABCABC", "ABc", "!")'Sonuç: "ABCABCABC"MsgBox Replace("ABCABCABC", "ZBC", "!")'Sonuç: "ABCABCABC"Alt Bitiş |
VBA Başlangıç Konumunu Değiştir
VBA Değiştir işlevi, bulunan her parçada bulunan herhangi bir alt dizeyi değiştirmek için kullanılabilir. Bir başlangıç konumu atarsak, sonuç orijinal dizenin bu başlangıç noktasından sonraki kısmı olacaktır.
12345678910111213 | Alt ReplaceExample_2()MsgBox Replace("ABCABCABC", "A", "123") 'Sonuç: "123BC123BC123BC"MsgBox Replace("ABCABCABC", "A", "123", 2) 'Sonuç: "BC123BC123BC"MsgBox Replace("ABCABCABC", "A", "123", 7) 'Sonuç: "123BC"MsgBox Replace("ABCABCABC", "A", "123", 8) 'Sonuç: "BC"MsgBox Replace("ABCABCABC", "ABC", "!@") 'Sonuç: "!@!@!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 2) 'Sonuç: "BC!@!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 6) 'Sonuç: "C!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 7) 'Sonuç: "!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 8) 'Sonuç: "BC"Alt Bitiş |
VBA Yalnızca Birkaç Olayı Değiştirin
VBA Değiştir işlevi, bulunan her parçada bulunan herhangi bir alt dizeyi değiştirmek için kullanılabilir. İsteğe bağlı olarak kaç tane oluşumun ikame edilmesi gerektiğine karar verebiliriz.
123456789101112 | Alt ReplaceExample_3()MsgBox Replace("ABCABCABC", "A", "12") 'Sonuç: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", , 1) 'Sonuç: "12BCABCABC"MsgBox Replace("ABCABCABC", "A", "12", , 2) 'Sonuç: "12BC12BCABC"MsgBox Replace("ABCABCABC", "A", "12", , 3) 'Sonuç: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", , 5) 'Sonuç: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", 3, 1)'Sonuç: "C12BCABC"'A'yı orijinal dizenin 3. konumundan başlayarak 1 kez 12 ile değiştirdik.Alt Bitiş |
VBA Büyük/Küçük Harf Duyarlılığını Değiştir
VBA Değiştirme İşlevi varsayılan olarak büyük/küçük harf duyarlıdır. İsteğe bağlı bir parametre kullanarak bu davranışı büyük/küçük harfe duyarsız olarak değiştirebilirsiniz (vbTextCompare). Bu durumda, aramanın başlangıç konumunu da tanımlamanız gerekir.
12345678910111213 | Alt ReplaceExample_4()MsgBox Replace("ABcABCABc", "ABc", "12")'Sonuç: "12ABC12"MsgBox Replace("ABcABCABc", "ABc", "12", , , vbTextCompare)'Sonuç: "121212"' vbTextCompare kullandığımızda diğer 2 isteğe bağlı argümanı eklememiz gerekiyor:'başla ve sayMsgBox Replace("ABcABCABcABc", "ABc", "12", 3, 1)'Sonuç: "cABC12ABc"'3. pozisyondan başladı ve ABC'yi sadece 1 kez değiştirdi.Alt Bitiş |
Ayrıca, modülünüzün üstüne Seçenek Karşılaştırma Metni ekleyerek büyük/küçük harfe duyarsız bir Değiştir işlemi gerçekleştirebilirsiniz:
1 | Seçenek Metni Karşılaştır |
VBA Çift Tırnakları Değiştir
VBA Değiştir işlevi, bir dizenin başlangıcını ve sonunu sınırlamak için kullanılan çift tırnak karakterini değiştirebilir.
VBA Chr işlevi, karakter kümesindeki numarasından bir karakter döndürebilir.
1 | MsgBox Chr(34) 'Sonuç: " |
Veya
1 | MsgBox Chr(64) 'Sonuç: @ |
“””” veya VBA işlevi Chr(34) kullanılarak VBA Değiştirme işlevi içinde çift tırnak kullanılabilir.
12345678910111213 | Alt ReplaceExample_5()Dize Olarak Dim StrExStrEx = "AB""AB"""MsgBox StrEx 'Sonuç: AB"AB"MsgBox Replace(StrEx, Chr(34), "12")'Sonuç: AB12AB12MsgBox Replace(StrEx, """", "DQ")'Sonuç: "ABDQABDQ"Alt Bitiş |
VBA Hücredeki Kesme Satırını Değiştir
VBA Değiştirme işlevi, bir hücredeki kesme satırı özel karakterini bulabilir ve kaldırabilir veya bir boşluk karakteriyle değiştirebilir. Kesme satırı özel karakteri, Alt+Enter klavye kısayolu kullanılarak bir hücreye girilebilir ve VBA işlevi Chr(10) kullanılarak Karakter kümesi numarasıyla VBA kodunda kullanılabilir.
1234567891011121314 | Alt ReplaceExample_6()Dim StrEx As String 'Bir dize değişkeni tanımlayın'Çalışma sayfasındaki A2 hücresinin değerini okuyun Sayfa1StrEx = ThisWorkbook.Worksheets("Sayfa1").Range("A2").Value'Alt+Enter ile girilen satır sonu karakteri Chr(10)'dur ve görünmezdir.'Bu kod satırı, o karakteri boşlukla değiştirirStrEx = Değiştir(StrEx, Chr(10), " ")'Çalışma sayfası Sheet1'deki B2 hücresine değiştirilen değeri yazınThisWorkbook.Worksheets("Sayfa1").Range("B2").Value = StrExAlt Bitiş |