EXCEL VBA'DA FİND AND REPLACE [BUL VE DEĞİŞTİR]

 


VBA'da, Bul ve Değiştir veya Değiştir işlevi, Excel'deki bir çalışma sayfası gibi bir aralıktaki belirli metin veya değerleri aramanıza ve bunları başka metin veya değerlerle değiştirmenize olanak tanıyan bir özelliği ifade eder. Bu işlevsellik, Excel ve Word gibi Microsoft Office uygulamalarında görevleri otomatikleştirirken yaygın olarak kullanılır.


VBA'daki Bul ve Değiştir işlevi genellikle bir aralığa veya nesneye uygulanan Bul yöntemi ve Değiştir yöntemi ile birlikte kullanılır.

VBA Bul ve Değiştir'in nasıl çalıştığını görmek için aşağıdaki örneği inceleyelim.

VBA Bul ve Değiştir Giriş Örneği

Tomato'yu Watermelon ile değiştirmemiz gerekiyor. Aşağıda gösterildiği gibi String'de VBA Find and Replace'i kullanabiliriz.

VBA Bul ve Değiştir Giriş.jpg

Burada, “Domates” için “A1:A10” aralığını kontrol eden ve onu “Karpuz” olarak değiştiren bir alt rutin oluşturuyoruz. Bu, aşağıda gösterilen çıktıyı verecektir.

VBA Bul ve Değiştir Giriş - Output.jpg

ÖNEMLİ NOKTALAR

  • VBA Bul ve Değiştir fonksiyonu, bir dizenin veya hücre değerinin içindeki alt dizenin oluşumlarını değiştirir.
  • Üç zorunlu argümana ihtiyaç vardır: aranacak dize veya hücre değeri, bulunacak alt dize ve bunun yerine kullanılacak alt dize.
  • İsteğe bağlı olarak, başlangıç ​​konumunu ve yapılacak değiştirme sayısını belirtmek için iki argüman daha kullanabilirsiniz.
  • İşlev varsayılan olarak büyük/küçük harfe duyarlı değildir, ancak ek mantıkla büyük/küçük harfe duyarlı değiştirmeler uygulayabilirsiniz.
  • Genellikle Excel de dahil olmak üzere VBA'da veri işleme ve metin işleme görevleri için kullanılır.

VBA Bul ve Değiştir Sözdizimi

Formül şu şekildedir:

expression.Replace(What, Replacement, LookAt, SearchOrder, MatchCase, MatchByte, SearchFormat, ReplaceFormat)

TÜRKÇE:

ifade.Replace(Ne, Değiştirme, LookAt, AramaSırası, EşleşenKüçükHarf, EşleşenBayt, AramaBiçimi, DeğiştirBiçimi)

Nerede,

ifade(Expression): Bu gereklidir ve değiştirme işlemini gerçekleştirmek istediğiniz bir aralığı veya nesneyi temsil eder.

Ne(What): Bu gereklidir ve bulmak ve değiştirmek istediğiniz metni veya değeri belirtir.

Değiştirme(Replacement): Bu gereklidir ve bulunan metni değiştirmek istediğiniz metni veya değeri belirtir.

LookAt: Bu isteğe bağlı parametre metnin nasıl aranacağını belirtir. Aşağıdaki değerleri alabilir:

  • xlWhole: Hücre içeriğinin tamamını eşleştir.
  • xlPart: Hücre içeriğinin herhangi bir kısmıyla eşleşir.
  • SearchOrder: Bu isteğe bağlı parametre, aramanın hangi sırayla yapılacağını belirtir. Aşağıdaki değerleri alabilir:
    • xlByRows: Satırlara göre arama.
    • xlByColumns: Sütunlara göre arama.
    • MatchCase: Bu isteğe bağlı parametre, büyük/küçük harfe duyarlı bir arama yapılıp yapılmayacağını belirtir. True veya False olabilir.

MatchByte: Bu, Excel'in uluslararası sürümlerinde kullanılan isteğe bağlı bir parametredir.

SearchFormat: Bu, hücre biçimlendirmesini aramak için kullanılan isteğe bağlı bir parametredir.

ReplaceFormat: Bu, değiştirilen metne biçimlendirme uygulamak için kullanılan isteğe bağlı bir parametredir.

VBA Bul ve Değiştir nasıl kullanılır?

VBA Aralıkta Bul ve Değiştir'in nasıl gerçekleştirileceğini görmek için aşağıdaki adımları izleyin.

Adım 1: Excel Çalışma Kitabını açtığınızda, başlık çubuğundaki “Geliştirici” simgesini seçin ve üzerine tıklayın.

Geliştirici simgesine tıkladıktan sonra “Visual Basic”i seçin. Kodlamaya başlayabileceğiniz VBA penceresini açar.

Geliştirici - Visual Basic

VBA editörünü açar.

Adım 1 - Editor.jpg

VBA editöründe, başlık çubuğundaki “Ekle” butonuna tıklayın ve “Modül” seçeneğini seçin.

Ekle - Modül

VBA Bul ve Değiştir'i kodunuzda nasıl uygulayacağınızı öğrenmeye hazırsınız.

Formülde VBA Bul ve Değiştir metninin nasıl uygulanacağını görelim. Aşağıdaki tabloya bakın:

Adım 2: “XYZ” dizesini VBA Bul ve Değiştir’i kullanarak “Merhaba Dünya”ya dönüştürmek için öncelikle bir alt rutin oluşturun ve sonraki adımları izleyin.

VBA Bul ve Değiştir - Adım 2.jpg

Adım 3: Geçerli aralığı depolamak için bir değişkeni VBA Aralık veri türü olarak bildirin .

Adım 3.jpg

Adım 4: Yukarıdaki tablonun aralığını daha önce bildirilen değişkene atayın.

Adım 4.jpg

Adım 5: Sütundaki belirli bir dizeyi değiştirmek için parametreleri tanımladığınız VBA Bul ve Değiştir işlevini başlatın.

VBA Bul ve Değiştir - Adım 5.jpg

Aranacak değişkeni ve onun yerine geçecek kelimeyi önceden tanımlanmış parametrelerle belirtiyoruz:

  • Ne(What)
  • Yenisiyle değiştirme(Replacement)

Bu durumda, büyük/küçük harf duyarlılığı varsayılan olarak "False" olarak bildirilir. Dolayısıyla, dizenin hangi durumda olduğuna bakılmaksızın, her şey değişecektir.

Kod:

Sub FindAndReplaceExample()
Dim rng As Range
Set rng = Range(“A1:A10”)
rng.Replace What:=”XYZ”, Replacement:=”Hello World” 

End Sub

Adım 6: VBA Araç Çubuğu’ndaki yeşil ok düğmesine basın.

VBA Bul ve Değiştir - Adım 6 - Run.jpg

Daha sonra alt programı çalıştırın ve tablonuzu görüntülemek için çalışma sayfasına gidin.

VBA Bul ve Değiştir - Adım 6 - Output.jpg

VBA'da dizede Bul ve Değiştir'i nasıl kullanacağınızı öğrendiniz. Daha detaylı birkaç örneğe bakalım.

Excel'de VBA Bul ve Değiştir Örnekleri

Aşağıda Excel'de VBA Bul ve Değiştir'in çeşitli kullanım örneklerine bakabilirsiniz.

Örnek 1

Aynı kelimenin farklı durumlarda olduğu bir tablonuz olduğunu düşünün. Tablodaki tüm kelimeleri durumlarına bakmaksızın değiştirmek istiyorsunuz.

VBA Bul ve Değiştir - Örnek 1.jpg

Bu, VBA Bul ve Değiştir fonksiyonu kullanılarak yapılabilir.

Adım 1: Excel'de belirli bir sütundaki bir dizeyi Bulmak ve Değiştirmek için bir alt rutin tanımlayın.

VBA Bul ve Değiştir - Örnek 1 - Adım 1.jpg

Adım 2: Bu alt rutinin çalışacağı çalışma sayfası adını kaydetmek için iki değişken tanımlayın.

VBA Bul ve Değiştir - Örnek 1 - Adım 2.jpg

Adım 3: Üzerinde çalışacağınız çalışma sayfasını ayarlayın.

VBA Bul ve Değiştir - Örnek 1 - Adım 3.jpg

Adım 4: Tablonun aralığını tanımlayarak başlayın; burada, Excel VBA'da xlUp kullanarak satırdaki son boş olmayan hücreyi, A sütununu karşılaştırma olarak alarak bulduk.

VBA Bul ve Değiştir - Örnek 1 - Adım 4.jpg

Adım 5: Aralıktaki replace işlevini çağırın ve “Lorem Ipsum”u arayın. Büyük/küçük harfe duyarlı değildir. Bu nedenle,  MatchCase  “False” olarak tanımlanır.

VBA Bul ve Değiştir - Örnek 1 - Adım 5.jpg

Kod:

Sub ReplaceFunctionExample()
Dim ws As Worksheet
Dim replaceRange As Range
Set ws = ThisWorkbook.Worksheets(“Sheet2”)
Set replaceRange = ws.Range(“A1:A” & ws.Cells(ws.Rows.count, “A”).End(xlUp).Row)
replaceRange.Replace What:=”lorem ipsum”, Replacement:=”What's Up?”, LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False
End Sub

Adım 6: Kodu çalıştırmak için “F5” tuşuna basın. Çıktı aşağıda gösterildiği gibi görüntülenir:

VBA Bul ve Değiştir - Örnek 1 - Adım 6.jpg

Bu durumda, eşleşen büyük/küçük harf duyarsızlığı olan sütunda VBA Find and Replace Text'i False olarak ayarladık. Peki büyük/küçük harf duyarsızlığını eşleştirmemiz gerekirse ne olur? Bunu yapmak için bir sonraki örneğe geçin.

Örnek 2

Aşağıdaki tabloyu inceleyin. Burada, "Crypto" kelimesini "Money" olarak değiştirmek istiyoruz. Bu durumda, aynı kelimenin birden fazla durumu var. Sadece "Crypto" kelimesini değiştirmek istediğimizden, formülde büyük/küçük harf duyarlılığıyla VBA Find and Replace in String gerçekleştirmemiz gerekecek.

VBA Bul ve Değiştir - Örnek 2.jpg

Adım 1: “Crypto”yu “Money”e çevirmek için bir alt prosedür tanımlamamız gerekiyor.

VBA Bul ve Değiştir - Örnek 2 - Adım 1.jpg

Adım 2: Çalışma sayfasını ve bu alt prosedürün çalışacağı aralığı tanımlayın.

Örnek 2 - Adım 2.jpg

Adım 3: Yukarıdaki fonksiyonu çağırarak VBA'yı Bugün artı yedi gün boyunca gerçekleştiren bir alt prosedür başlatın .

Örnek 2 - Adım 3.jpg

Adım 4: Giriş tarihini bir Tarih değişkeni olarak, eklenecek saat ve gün sayısını sırasıyla tam sayılar olarak ve eklendikten sonra tarih değerini saklamak için yeni bir tarih değişkeni olarak başlatın.

Örnek 1 - Adım 2.jpg

Adım 5: Alt prosedürün çalışacağı sayfa numarasını ayarlayın.

Örnek 2 - Adım 4.jpg

Adım 6: Satır sayısını tanımlayarak hücrelerin aralığını tanımlayın. Gelecekte ek satırlarla başa çıkmak için, klavyedeki yukarı ok tuşunu taklit eden VBA XlUp düğmesini kullanabiliriz.

VBA Bul ve Değiştir - Örnek 2 - Adım 6.jpg

xlUp hücredeki boş olmayan son değeri kontrol eder ve bir tamsayı değeri döndürür.

Adım 7: VBA Bul ve Değiştir işlevini arama sözcüğü ve tanımlanan değiştirme sözcüğüyle çağırın. Ardından, MatchCase'i “True” olarak tanımlayın.

VBA Bul ve Değiştir - Örnek 2 - Adım 7.jpg

Bu sadece kelimeyi büyük harfle "Kripto" ile değiştirecek ve diğer her şey olduğu gibi kalacaktır.

Kod:

Sub ReplaceFunctionCaseSensitive()
Dim rng As Range
Dim w As Worksheet
w = ThisWorkbook.Worksheets(“Sheet4”)
Set rng = w.Range(“A1:A” & w.Cells(w.Rows.count, “A”).End(xlUp).Row)
rng.Replace What:=”Crypto”, Replacement:=”Money”, LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=True
End Sub

Adım 8: Yukarıdaki kodu VBA Editöründe çalıştırın. Sonra değişiklikleri görüntülemek için sayfaya geri dönün.

VBA Bul ve Değiştir - Örnek 2 - Adım 8.jpg

Dikkat Edilmesi Gereken Önemli Noktalar

  • Varsayılan olarak, Replace işlevi büyük/küçük harfe duyarlı değildir. Arama dizesinin tüm oluşumlarını, büyük/küçük harfe bakılmaksızın değiştirir.
  • Replace işlevi, üzerinde çalıştığı hücre veya dizedeki orijinal verileri değiştirir. Orijinal verilerin kaydını tutmanız gerekiyorsa, değiştirmeleri gerçekleştirmeden önce verilerin bir yedeğini veya kopyasını oluşturun.
  • Değiştir fonksiyonu Excel'de hem dizelerle hem de hücre değerleriyle kullanılabilir.
  • Excel çalışma sayfasında değiştirme işlemi yapıyorsanız, değiştirmeyi her hücreye ayrı ayrı uygulamak için bir döngü kullanarak aralıkta düzgün bir şekilde yineleme yapın.
  • Replace işlevini çağırırken arama dizesi, değiştirme dizesi ve üzerinde işlem yaptığınız dize gibi doğru parametreleri kullandığınızdan emin olun. Bu parametreleri doğru sırada belirttiğinizden emin olun.
  • Özellikle kapsamlı değişiklikler yaparken çalışma kitabınızın verilerini değiştiren VBA kodunu çalıştırmadan önce , çalışma kitabınızın bir yedek kopyasını kaydetmek iyi bir uygulamadır.


Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...