Excel VBA: Dizgideki Metin Nasıl Değiştirilir (5 Etkili Yol)

  • Bunu Paylaş
Hugh West

Aşağıdakileri yapmanın yollarını arıyorsanız dize içindeki metni değiştir Excel kullanarak VBA Belirli bir metin parçasını değiştirmek, metin dizelerini tekrar yazarken çok zaman kazandırabilir. Bu nedenle, bu değiştirme göreviyle ilgili ayrıntıları öğrenmek için ana makaleye girelim.

Çalışma Kitabını İndirin

String.xlsm'deki Metni Değiştirin

Excel VBA Kullanarak Dizedeki Metni Değiştirmenin 5 Yolu

Burada, çalışanların e-posta kimlikleriyle birlikte bazı kayıtlarını içeren aşağıdaki veri kümesine sahibiz. Görevimiz eski alan adlarını yenileriyle değiştirmektir. Aşağıdaki yöntemlerde, istenen metni aşağıdakilerle değiştirmek için bazı rastgele metin dizeleriyle birlikte bu veri kümesiyle çalışacağız VBA Kodlar.

Biz kullandık Microsoft Excel 365 sürümünü burada bulabilirsiniz, uygunluğunuza göre diğer sürümleri kullanabilirsiniz.

Yöntem-01: Rastgele Bir Dizenin n'inci Konumundan Başlayarak Metni Değiştirme

Burada, farklı başlangıç konumları için rastgele bir metin dizesindeki metni değiştireceğiz.

Adım-01 :

➤ Şuraya gidin Geliştirici Tab>> Kod Grup>> Visual Basic Opsiyonel.

O zaman Visual Basic Düzenleyicisi açılacak.

➤ Şuraya gidin Ekleme Tab>> Modül Opsiyonel.

Bundan sonra, bir Modül oluşturulacaktır.

Adım-02 :

➤ Aşağıdaki kodu yazın

 Sub sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Yüz Araba Elli Araba On Araba" updated_str = Replace(full_txt_str, "Arabalar", "Bisikletler", 1) MsgBox updated_str End Sub 

Burada şunu beyan ettik full_txt_str ve updated_str olarak String ve sonra atandı full_txt_str rastgele bir metin dizesine- "Yüz Araba Elli Araba On Araba" . Sonra VBA REPLACE işlevi değiştirmek için kullanılır. Arabalar ile bu rastgele dizenin bir parçası Bisikletler ve 1 burada değiştirmeyi konumdan başlatmak için kullanılır 1 Son olarak, bu yeni metin dizesini updated_str ve bir mesaj kutusu ile ( MsgBox ) sonucu göreceğiz.

➤ Basın F5 .

O zaman bir mesaj kutusu değiştirilen metinle birlikte yeni metin dizesiyle birlikte görünecektir Bisikletler .

➤ Değiştirme işlemini ikinci örnekten yapmak için Arabalar aşağıdaki kodu kullanın.

 Sub sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Yüz Araba Elli Araba On Araba" updated_str = Replace(full_txt_str, "Arabalar", "Bisikletler", 14) MsgBox updated_str End Sub 

Burada, başlangıç pozisyonunu şu şekilde kullandık 14 çünkü dizenin Yüz Araba ve yerine Arabalar Burada.

Sonra çalışan kodu, aşağıdakilere sahip olacağız mesaj kutusu ile metin dizesi metinden başlayarak Elli ve Bisikletler pozisyonunda Arabalar .

➤ Bu dizenin sadece son kısmına sahip olmak için aşağıdaki kodu uyguluyoruz.

 Sub sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Yüz Araba Elli Araba On Araba" updated_str = Replace(full_txt_str, "Arabalar", "Bisikletler", 25) MsgBox updated_str End Sub 

Burada, başlangıç pozisyonunu şu şekilde kullandık 25 çünkü dizenin Elli Araba ve yerine Arabalar ile Bisikletler Burada.

Son olarak, bir mesaj kutusu ile değiştirilen dizenin istediğimiz kısmı ile Bisikletler .

Daha Fazla Oku: Excel VBA: Dizgideki Karakteri Pozisyona Göre Değiştirin (4 Etkili Yol)

Yöntem-02: Excel VBA Kullanarak Rastgele Bir Dizenin n'inci Oluşumu İçin Metin Değiştirme

Bu bölümde, bir metni rastgele bir dizgide farklı sayıda oluşum için bir VBA Kod.

Adımlar :

Takip et Adım-01 . Yöntem-1 .

➤ Aşağıdaki kodu yazın.

 Sub sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Yüz Araba Elli Araba On Araba" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 1, 1) MsgBox updated_str End Sub 

Burada şunu beyan ettik full_txt_str ve updated_str olarak String ve sonra atandı full_txt_str rastgele bir metin dizesine- "Yüz Araba Elli Araba On Araba" Bundan sonra REPLACE işlevi değiştirmek için kullanılır. Arabalar ile bu rastgele dizenin bir parçası Bisikletler , 1 burada değiştirmeyi konumdan başlatmak için kullanılır 1 ve bu dizenin son 1 olay sayısını saymak içindir. 1 sayma numarası olarak ilk sayma numarasının yerini tanımlıyoruz. Arabalar Son olarak, bu yeni metin dizesini updated_str ve bir mesaj kutusu ile ( MsgBox ) sonucu göreceğiz.

➤ Basın F5 .

Daha sonra, bir mesaj kutusu yeni metinle birlikte görünecektir Bisikletler içinde birinci pozisyon . Arabalar Sadece.

➤ İlk iki örneğini değiştirmek için Arabalar ile Bisikletler aşağıdaki kodu kullanın.

 Sub sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Yüz Araba Elli Araba On Araba" updated_str = Replace(full_txt_str, "Arabalar", "Bisikletler", 1, 2) MsgBox updated_str End Sub 

İşte, 2 'nin ilk iki örneğini değiştirmek için sayma numarası olarak kullanılır. Arabalar ile Bisikletler .

Kodu çalıştırdıktan sonra, ilk iki metnin yerini alacaksınız Arabalar ile Bisikletler .

➤ Metnin tüm örneklerini değiştirmek için aşağıdaki kodu uygulayın Arabalar .

 Sub sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Yüz Araba Elli Araba On Araba" updated_str = Replace(full_txt_str, "Arabalar", "Bisikletler", 1, 3) MsgBox updated_str End Sub 

Burada, son argüman REPLACE işlevi o 3 tümünün değiştirildiğini gösteren sayma numarasıdır. Arabalar ile Bisikletler metin dizesinde.

➤ Basın F5 .

Daha sonra aşağıdakileri yapacağız mesaj kutusu değiştirilen metin ile Bisikletler dizede.

Benzer Okumalar

  • Excel'de Metni Satır Başı ile Değiştirme (4 Pürüzsüz Yaklaşım)
  • Excel VBA: Word Belgesinde Metin Bulma ve Değiştirme
  • Excel'de Belirli Karakterden Sonra Gelen Metin Nasıl Değiştirilir (3 Yöntem)
  • Excel'de Koşula Bağlı Olarak Bir Hücrenin Metnini Değiştirme (5 Kolay Yöntem)

Yöntem-03: Rastgele Bir Dizedeki Metni InputBox ile Değiştirme

Burada, rastgele bir dizenin belirli bir metnini, kullanıcı tarafından tanımlanacak bir metinle değiştireceğiz. VBA InputBox işlevi .

Adımlar :

Takip et Adım-01 . Yöntem-1 .

➤ Aşağıdaki kodu yazın.

 Sub sub substitution_of_text_3() Dim full_txt_str, new_txt, updated_str As String full_txt_str = "Yüz Araba Elli Araba On Araba" new_txt = InputBox("Değiştirilecek yeni metni yazın") updated_str = Replace(full_txt_str, "Arabalar", new_txt) MsgBox updated_str End Sub 

Burada şunu beyan ettik full_txt_str , new_txt ve updated_str olarak String ve sonra atandı full_txt_str rastgele bir metin dizesine- "Yüz Araba Elli Araba On Araba" . ile değiştirilecek metin olarak kullanıcı tanımlı girdiye sahip olmak için Arabalar rastgele dizede, biz kullandık InputBox işlevi ve sonra bu değeri new_txt . Sonra REPLACE işlevi değiştirmek için kullanılır. Arabalar ile bu rastgele dizenin bir parçası new_txt Son olarak, bu yeni metin dizesini updated_str ve bir mesaj kutusu ile ( MsgBox ) sonucu göreceğiz.

➤ Basın F5 .

Bundan sonra, bir Giriş Kutusu yeni dizede olmasını istediğiniz herhangi bir metin parçasını girebileceğiniz yer görünecektir.

➤ Tip Bisikletler veya istediğiniz başka bir metni seçin ve ardından TAMAM. .

Son olarak, yeni metne sahip yeni metin dizesi ile aşağıdaki sonucu elde edersiniz Bisikletler pozisyonunda Arabalar .

Daha Fazla Oku: Excel Formülündeki Metin Nasıl Değiştirilir (7 Kolay Yol)

Yöntem-04: Excel VBA ile Bir Dize Aralığındaki Metni Değiştirme

Burada, yerine gmail alan adları ile e-posta kimliklerinin bir parçası Yeni Alan Adı sütununa ekledik ve yeni e-posta kimliklerini toplamak için yeni bir sütun ekledik; Son E-posta Kimliği .

Adımlar :

Takip et Adım-01 . Yöntem-1 .

➤ Aşağıdaki kodu yazın.

 Sub sub substitution_of_text_4() For i = 4 To 13 If InStr(1, Cells(i, 4).Value, "gmail")> 0 Then Cells(i, 6).Value = Replace(Cells(i, 4).Value, "gmail", Cells(i, 5).Value) Else Cells(i, 6).Value = "" End If Next i End Sub 

Burada, kullandığımız FOR döngüsü 'den işlemi yürütmek için Sıra 4 için Sıra 13 Yardımlarıyla EĞER-O ZAMAN deyiminde, e-posta kimliklerinin Sütun D içerir "gmail" ya da değil ve bu kriteri yerine getirmek için "gmail" e-posta kimliklerinin bir kısmı yeni alan adları ile değiştirilecektir. Sütun E içinde yeni kimlikler oluşturmak için Sütun F . Aksi takdirde, ilgili hücrelerde bir boşluk olacaktır. Sütun F .

➤ Basın F5 .

Ardından, yeni e-posta kimliklerini Son E-posta Kimliği sütun.

Daha Fazla Oku: Bir Sütundaki Metni Bulmak ve Değiştirmek için Excel VBA (2 Örnek)

Yöntem-05: Metin Bulmak için Kullanıcı Girişi ile Dize Aralığındaki Metni Değiştirme

Aşağıdaki e-posta kimliklerini yeni alan adlarıyla değiştirebilir ve önceki kimliklerde neyin değiştirileceğini bildirebilirsiniz, bu yöntemi izleyerek bir kullanıcı girişi kullanılabilir.

Adımlar :

Takip et Adım-01 . Yöntem-1 .

➤ Aşağıdaki kodu yazın.

 Sub sub substitution_of_text_5() Dim partial_text As String partial_text = Application.InputBox("Değiştirilecek dizeyi girin") For i = 4 To 13 If InStr(1, Cells(i, 4).Value, LCase(partial_text))> 0 Then Cells(i, 6).Value = Replace(Cells(i, 4).Value, LCase(partial_text), Cells(i, 5).Value) Else Cells(i, 6).Value = "" End If Next i End Sub 

Burada, tanımladık partial_text olarak String aracılığıyla kullanıcı tarafından verilecek bir dizeye atandı. Giriş Kutusu .

Daha sonra, biz kullandık FOR döngüsü 'den işlemi yürütmek için Sıra 4 için Sıra 13 ve kullanarak EĞER-O ZAMAN ifadesinin e-posta kimlikleri olup olmadığını kontrol ettik. Sütun D içerir "gmail" Ve bu kriteri yerine getirmek için "gmail" e-posta kimliklerinin bir kısmı yeni alan adları ile değiştirilecektir. Sütun E içinde yeni kimlikler oluşturmak için Sütun F . Aksi takdirde, ilgili hücrelerde bir boşluk olacaktır. Sütun F .

➤ Basın F5 .

Bundan sonra, bir Giriş Kutusu e-posta kimlikleri aralığında aramak istediğiniz metni yazmanız gereken yer (burada gmail ) ve ardından TAMAM. .

Son olarak, güncellenmiş e-posta kimliklerimizi Son E-posta Kimliği sütun.

Daha Fazla Oku: Excel VBA ile Bir Aralıktaki Metni Bulma ve Değiştirme (Makro ve UserForm)

Uygulama Bölümü

Kendi kendinize pratik yapmanız için bir Uygulama adlı bir sayfada aşağıdaki gibi bir bölüm Uygulama Lütfen bunu kendiniz yapın.

Sonuç

Bu makalede, Excel kullanarak bir dizedeki metni değiştirmenin yollarını ele almaya çalıştık VBA Umarım faydalı bulursunuz. Herhangi bir öneriniz veya sorunuz varsa, bunları yorum bölümünde paylaşmaktan çekinmeyin.

Hugh West, sektörde 10 yılı aşkın deneyime sahip oldukça deneyimli bir Excel eğitmeni ve analistidir. Muhasebe ve Finans alanında lisans derecesine ve İşletme alanında yüksek lisans derecesine sahiptir. Hugh öğretme tutkusuna sahiptir ve takip etmesi ve anlaması kolay benzersiz bir öğretim yaklaşımı geliştirmiştir. Excel konusundaki uzman bilgisi, dünya çapında binlerce öğrencinin ve profesyonelin becerilerini geliştirmesine ve kariyerlerinde başarılı olmasına yardımcı olmuştur. Hugh, blogu aracılığıyla bilgisini dünyayla paylaşıyor, bireylerin ve işletmelerin tam potansiyellerine ulaşmalarına yardımcı olmak için ücretsiz Excel eğitimleri ve çevrimiçi eğitimler sunuyor.