VBA Dizeleri ve Alt Dizeleri İşlevleri

VBA, kodunuzdaki metin ve dizeleri değiştirmenize ve bunlarla çalışmanıza izin verecek birçok dize işlevine sahiptir. Bu öğreticide, dizelerden alt dizeleri çıkarmanıza, dizelerdeki boşlukları kaldırmanıza, bir metin veya dizenin büyük/küçük harf durumunu dönüştürmenize, dizeleri karşılaştırmanıza ve diğer yararlı dize işlevlerini gerçekleştirmenize olanak sağlayacak işlevleri ele alacağız.

Bir Alt Dizgiyi Çıkarma

VBA Sol Dize İşlevi

VBA Sol İşlevi, sol taraftan başlayarak bir metinden veya dizeden bir alt dize çıkarmanıza olanak tanır. VBA Sol Dize İşlevinin sözdizimi şöyledir:

Left(String, Num_of_characters) burada:

  • Dize - Orijinal metin.
  • karakter_sayısı - Baştan başlayarak orijinal metinden ayıklanacak karakter sayısını belirten bir tam sayı.

Aşağıdaki kod, verilen dizenin ilk dört karakterini çıkarmak için Sol Dize İşlevini nasıl kullanacağınızı gösterir:

1234567891011 TheLeftStringFunction() Kullanarak AltDim valueOne As StringDim valueTwo As StringvalueOne = "Excel'i Otomatikleştir"değerİki = Sol(değerBir, 4)MsgBox değeriİkiAlt Bitiş

Sonuç:

Sol İşlev, AutomateExcel'in Auto olan ilk dört harfini çıkardı.

VBA Sağ Dize İşlevi

VBA Sağ İşlevi, sağ taraftan başlayarak bir metinden veya dizeden bir alt dize çıkarmanıza olanak tanır. VBA Sağ Dize İşlevinin sözdizimi şöyledir:

Right(String, Num_of_characters) burada:

  • Dize - Orijinal metin.
  • karakter_sayısı - Orijinal metinden sondan başlayarak ayıklanacak karakter sayısını belirten bir tam sayı.

Aşağıdaki kod, dizenin son dört karakterini çıkarmak için Sağ Dize İşlevini nasıl kullanacağınızı gösterir:

1234567891011 TheRightStringFunction() Kullanarak AltDim valueOne As StringDim valueTwo As StringvalueOne = "Excel'i Otomatikleştir"değerİki = Sağ(değerBir, 4)MsgBox değeriİkiAlt Bitiş

Sonuç:

Sağ İşlev, AutomateExcel'in xcel olan son dört harfini çıkardı.

VBA Orta Dize İşlevi

VBA Mid Function, belirttiğiniz dize içindeki herhangi bir konumdan başlayarak bir metinden veya dizeden bir alt dize çıkarmanıza olanak tanır. VBA Mid String İşlevinin sözdizimi şöyledir:

Mid(Dize, Başlangıç_konumu, [Num_of_characters]) burada:

  • Dize - Orijinal metin.
  • Başlangıç_pozisyonu - Orijinal metinde, işlevin çıkarılmaya başlayacağı konum.
  • karakter_sayısı (İsteğe bağlı) - Başlangıç_pozisyonundan başlayarak orijinal metinden ayıklanacak karakter sayısını belirten bir tam sayı. Boşsa, MID İşlevi, Başlangıç_pozisyonundan tüm karakterleri döndürür.

Aşağıdaki kod, dizedeki ikinci konumdan veya karakterden başlayarak dört karakter çıkarmak için Mid String İşlevini nasıl kullanacağınızı gösterir:

1234567891011 Alt KullanarakTheMidStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "Excel'i Otomatikleştir"değerİki = Orta(değerBir, 2, 4)MsgBox değeriİkiAlt Bitiş

Sonuç bir mesaj kutusuna gönderilir:

Orta İşlev, utom olan ikinci karakter/konum/harften başlayarak AutomateExcel'in dört harfini çıkardı.

Bir Alt Dizinin Konumunu Bulma

VBA Instr String İşlevi

VBA Instr İşlevi, başka bir dize içindeki bir alt dizenin başlangıç ​​konumunu döndürür. Bu işlev büyük/küçük harfe duyarlıdır. VBA Instr String İşlevinin sözdizimi şöyledir:

Instr([Start], String, Substring, [Compare]) burada:

  • Başlangıç ​​(İsteğe bağlı) - Bu, işlevin arama yapacağı başlangıç ​​konumunu belirtir. Boşsa, varsayılan 1 değeri kullanılır.
  • Dize - Orijinal metin.
  • alt dize- Orijinal metnin içindeki konumunu bulmak istediğiniz alt dize.
  • Karşılaştırmak (İsteğe bağlı)- Bu, yapılacak karşılaştırmanın türünü belirtir. Boşsa, ikili karşılaştırma kullanılır.

-vbBinaryCompare - İkili karşılaştırma (Büyük ve küçük harf farklı kabul edilir)
-vbTextCompare - Metin karşılaştırması (Büyük ve küçük harf aynı kabul edilir)
-vbDatabaseCompare - Veritabanı karşılaştırması (Bu seçenek yalnızca Microsoft Access'te kullanılır ve veritabanına dayalı bir karşılaştırmadır)

Aşağıdaki kod, ana dize içindeki "Th" alt dizesinin ilk oluşumunu belirlemek için Instr String Function'ın nasıl kullanılacağını gösterir:

123456789101112 Alt KullanarakTheInstrStringFunction()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Bu Metindir"positionofSubstring = InStr(1, valueOne, "Th")Debug.Substring konumunu yazdırAlt Bitiş

Sonuç (Immediate Window'a gönderilir):

Instr İşlevi, “Th” alt dizisinin ilk oluşumunun 1 olan konumunu döndürdü. Bu işlevin sayımdaki boşlukları içerdiğini unutmayın.

VBA InstrRev Dize İşlevi

VBA InstrRev İşlevi, başka bir dize içindeki bir alt dizenin başlangıç ​​konumunu döndürür, ancak dizenin sonundan itibaren konumu saymaya başlar. Bu işlev büyük/küçük harfe duyarlıdır. VBA InstrRev Dize İşlevinin sözdizimi şöyledir:

InstrRev(String, Substring, [Start], [Compare]) burada:

  • Dize - Orijinal metin.
  • alt dize- Orijinal metnin içindeki konumunu bulmak istediğiniz alt dize.
  • Başlangıç ​​(İsteğe bağlı) - Bu, aramaya başlamak için konumu belirtir. Boşsa, işlev aramayı son karakterden başlatır.
  • Karşılaştırmak (İsteğe bağlı)- Bu, yapılacak karşılaştırmanın türünü belirtir. Boşsa, ikili karşılaştırma kullanılır.

-vbBinaryCompare - İkili karşılaştırma (Büyük ve küçük harf farklı kabul edilir)
-vbTextCompare - Metin karşılaştırması (Büyük ve küçük harf aynı kabul edilir)
-vbDatabaseCompare - Veritabanı karşılaştırması (Bu seçenek yalnızca Microsoft Access'te kullanılır ve veritabanına dayalı bir karşılaştırmadır)

Aşağıdaki kod, dizenin sonundan başlayarak ana dize içindeki "Th" alt dizesinin ilk oluşumunu belirlemek için InstrRev Dize İşlevinin nasıl kullanılacağını gösterir:

1234567891011 Alt KullanarakTheInstrRevStringFunction()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Bu Metindir"positionofSubstring = InStrRev(valueOne, "Th")Debug.Substring konumunu yazdırAlt Bitiş

Sonuç Anında Pencereye gönderilir:

InstrRev İşlevi, “Th” alt dizesinin ilk oluşumunun konumunu döndürdü, ancak saymaya 9 olan sondan başlıyor. Bu işlevin sayımdaki boşlukları içerdiğine dikkat edin.

Bir Dizeden Boşlukları Kaldırma

VBA LTrim Dize İşlevi

VBA LTrim İşlevi, bir metin veya dizeden baştaki tüm boşlukları kaldırır. VBA LTrim Dize İşlevinin sözdizimi şöyledir:

LTrim(String) burada:

  • Dize - Orijinal metin.

Aşağıdaki kod, verilen dizedeki baştaki boşlukları kaldırmak için VBA LTrim İşlevini nasıl kullanacağınızı gösterir:

123456789101112 TheLTrimStringFunction() Kullanarak AltDim valueOne As StringDim valueTwo As StringvalueOne = " Bu, https://easyexcel.net/excel/ web sitesi adresidir"değerİki = LTrim(değerBir)MsgBox değeriBirMsgBox değeriİkiAlt Bitiş

Sonuçlar:

LTrim İşlevi, ikinci Mesaj Kutusunda gösterilen değer iki için baştaki boşlukları kaldırdı.

VBA RTrim Dize İşlevi

VBA RTrim İşlevi, bir metin veya dizedeki tüm sondaki boşlukları kaldırır. VBA RTrim Dize İşlevinin sözdizimi şöyledir:

RTrim(Dize) burada:

  • Dize - Orijinal metin.

Aşağıdaki kod, verilen dizedeki sondaki boşlukları kaldırmak için VBA RTrim İşlevini nasıl kullanacağınızı gösterir:

123456789101112 Alt KullanarakTheRTrimStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "Bu, https://easyexcel.net/excel/ web sitesi adresidir"değerİki = RTrim(değerBir)MsgBox değeriBirMsgBox değeriİkiAlt Bitiş

Teslim edilen sonuçlar şunlardır:

RTrim İşlevi, ikinci Mesaj Kutusunda gösterilen değer iki için sondaki boşlukları kaldırdı.

VBA Trim Dize İşlevi

VBA Kırpma İşlevi, bir metinden veya dizeden tüm baştaki ve sondaki boşlukları kaldırır. VBA Trim String Function sözdizimi şöyledir:

Trim(String) burada:

  • Dize - Orijinal metin.

Aşağıdaki kod, verilen dizedeki baştaki ve sondaki boşlukları kaldırmak için VBA Trim İşlevini nasıl kullanacağınızı gösterir:

123456789101112 Alt KullanarakTheTrimStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = " Bu, web sitesi adresidir https://easyexcel.net/excel/ "valueTwo = Kırp(değerBir)MsgBox değeriBirMsgBox değeriİkiAlt Bitiş

Sonuçlar:

Trim İşlevi, ikinci Mesaj Kutusunda gösterilen değer iki için baştaki ve sondaki boşlukları kaldırdı.

VBA Vaka İşlevleri

VBA LCase Dize İşlevi

VBA LCase İşlevi, bir metindeki veya dizedeki harfleri küçük harfe dönüştürür. VBA LCase Dize İşlevinin sözdizimi şöyledir:

LCase(Dize) burada:

  • Dize - Orijinal metin.

Aşağıdaki kod, verilen dizedeki tüm harfleri küçük harfe dönüştürmek için LCase Dize İşlevinin nasıl kullanılacağını gösterir:

1234567891011 Alt KullanarakTheLCaseStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "BU ÜRÜN"değerİki = LCase(değerBir)MsgBox değeriİkiAlt Bitiş

Sonuç:

LCase İşlevi, dizedeki tüm harfleri küçük harfe dönüştürmüştür.

VBA UCase Dize İşlevi

VBA UCase İşlevi, bir metindeki veya dizedeki harfleri büyük harfe dönüştürür. VBA UCase Dize İşlevinin sözdizimi şöyledir:

UCase(Dize) burada:

  • Dize - Orijinal metin.

Aşağıdaki kod, verilen dizedeki tüm harfleri büyük harfe dönüştürmek için UCase Dize İşlevini nasıl kullanacağınızı gösterir:

1234567891011 TheUCaseStringFunction() Kullanarak AltDim valueOne As StringDim valueTwo As StringvalueOne = "bu ürün"değerİki = UCase(değerBir)MsgBox değeriİkiAlt Bitiş

Sonuç:

UCase İşlevi, dizedeki tüm harfleri büyük harfe dönüştürmüştür.

VBA StrConv İşlevi

VBA StrConv İşlevi, belirttiğiniz dönüştürme türüne bağlı olarak bir metin veya dizedeki harfleri büyük harfe, küçük harfe, uygun harfe veya unicode'a dönüştürebilir. VBA StrConv Dize İşlevinin sözdizimi şöyledir:

StrConv(String, Conversion, [LCID]) burada:

  • Dize - Orijinal metin.
  • Dönüşüm - İstediğiniz dönüşüm türü.
  • [LCID] (İsteğe bağlı) -LocaleID'yi belirten isteğe bağlı bir parametre. Boşsa, sistem LocaleID'si kullanılır.

Aşağıdaki kod, dizeyi uygun duruma dönüştürmek için StrConv Dize İşlevinin nasıl kullanılacağını gösterir:

1234567891011 Alt KullanarakTheStrConvStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "bu, ÜRÜN"valueTwo = StrConv(valueOne, vbProperCase)MsgBox değeriİkiAlt Bitiş

Sonuç:

Dönüşüm parametresini kullanarak gerçekleştirmek istediğiniz dönüştürme türünü belirtirsiniz:

  • vbLowerCase, metindeki tüm harfleri küçük harfe dönüştürür.
  • vbUpperCase, metindeki tüm harfleri büyük harfe dönüştürür.
  • vbProperCase, metindeki her kelimenin ilk harfini büyük harfe dönüştürür, diğer tüm harfleri küçük harf olarak tutar.
  • vbUnicode, bir dizeyi unicode'a dönüştürür.
  • vbFromUnicode, bir dizeyi unicode'dan sistemin varsayılan kod sayfasına dönüştürür.

Dizeleri Karşılaştırma

VBA StrComp İşlevi

VBA StrComp Dize İşlevi, iki dizeyi karşılaştırmanıza olanak tanır. İşlev şunu döndürür:

  • 0 iki dize eşleşirse
  • -1 dize1 dize2'den küçükse
  • 1 dize1 dize2'den büyükse
  • Dizelerden herhangi biri Null ise boş bir değer

Aşağıdaki kod, iki dizeyi karşılaştırmak için StrComp İşlevini nasıl kullanacağınızı gösterir:

123456789101112 TheStrCompStringFunction() Kullanarak AltDim valueOne As StringDim valueTwo As StringTamsayı Olarak Karşılaştırmanın karartılması sonucuvalueOne = "Excel'i Otomatikleştir"valueTwo = "Excel'i Otomatikleştir"resultofComparison = StrComp(valueOne, valueTwo)Hata ayıklama.Karşılaştırma sonucunu yazdırAlt Bitiş

Sonuç:

StrComp İşlevi, iki dize arasında tam bir eşleşme buldu ve 0 döndürdü.

VBA Benzeri Operatör

VBA Like Operator, bir metni veya dizeyi bir kalıpla karşılaştırmanıza ve bir eşleşme olup olmadığını görmenize olanak tanır. Genellikle Like Operator'ü joker karakterlerle birlikte kullanırsınız. Aşağıdaki kod, Like Operator'un nasıl kullanılacağını gösterir:

123456789101112 TheLikeOperatorInVBA() Kullanarak AltDim valueOne As StringvalueOne = "Çıktıyı görelim"Eğer valueOne "*view*" gibiyse O zamanMsgBox "Bir eşleşme var, bu dize kelime görünümünü içeriyor"BaşkaMsgBox "Eşleşme bulunamadı"BitirAlt Bitiş

Sonuç:

Model eşleşmelerini bulmak için Like Operator ile kullanabileceğiniz joker karakterler şunları içerir:

  • ? tek bir karakterle eşleşen
  • # tek bir rakamla eşleşen
  • * sıfır veya daha fazla karakterle eşleşen

Aşağıdaki kod, Like Operator ve ? kodunuzdaki bir desenle eşleşmesi için joker karakter:

123456789101112 TheLikeOperatorWithAWildcardInVBA() Kullanarak AltDim valueOne As StringvalueOne = "The"Eğer valueOne Like "??e" SonraMsgBox "Bir eşleşme var, eşleşen bir desen bulundu"BaşkaMsgBox "Eşleşme bulunamadı"BitirAlt Bitiş

Teslim edilen sonuç:

Diğer Yararlı VBA Dize İşlevleri

VBA Dize Değiştirme İşlevi

VBA Değiştirme İşlevi, bir dizedeki bir dizi karakteri başka bir karakter grubuyla değiştirir. VBA Dize Değiştir İşlevinin sözdizimi şöyledir:

Değiştir(Dize, Bul, Değiştir, [Başlat], [Sayım], [Karşılaştır]) burada:

  • Dize - Orijinal metin.
  • Bul - Orijinal metin içinde aranacak alt dize.
  • Değiştir - Find alt dizesinin değiştirileceği alt dize.
  • Başlangıç ​​(İsteğe bağlı)- Orijinal metnin içinden aramaya başlanacak konum. Boşsa, 1 değeri kullanılır ve işlev ilk karakter konumundan başlar.
  • Saymak (İsteğe bağlı)- Orijinal metinde değiştirilecek Bul alt dizesinin oluşum sayısı. Boşsa, Bul alt dizesinin tüm oluşumları değiştirilir.
  • Karşılaştırmak (İsteğe bağlı)- Bu, yapılacak karşılaştırmanın türünü belirtir. Boşsa, ikili karşılaştırma kullanılır.

    -vbBinaryCompare - İkili karşılaştırma
    -vbTextCompare - Metin karşılaştırma
    -vbDatabaseCompare - Veritabanı karşılaştırması (Bu seçenek yalnızca Microsoft Access'te kullanılır ve veritabanına dayalı bir karşılaştırmadır.)

Aşağıdaki kod, Dize Değiştir İşlevini nasıl kullanacağınızı gösterir:

1234567891011 Alt KullanmaTheReplaceStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "ÜrünABC"valueTwo = Değiştir(valueOne, "ABC", "XYZ")MsgBox değeriİkiAlt Bitiş

Sonuç:

Değiştirme İşlevi, ProductABC içinde ABC alt dizesini buldu ve onu XYZ alt dizesiyle değiştirdi.

VBA StrReverse İşlevi

VBA StrReverse İşlevi, belirli bir metin veya dizedeki karakterleri tersine çevirir. VBA StrReverse String İşlevinin sözdizimi şöyledir:

StrReverse(String) burada:

  • Dize - Orijinal metin.

Aşağıdaki kod, Ürün dizesindeki karakterleri tersine çevirmek için VBA StrReverse İşlevini nasıl kullanacağınızı gösterir:

1234567891011 Alt KullanarakTheStrReverseStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "Ürün"valueTwo = StrReverse(valueOne)MsgBox değeriİkiAlt Bitiş

Sonuç:

VBA Len String İşlevi

VBA Len İşlevi, bir metin dizesindeki karakter sayısını döndürür. VBA Len String İşlevinin sözdizimi şöyledir:

Len(Dize) burada:

  • Dize - Orijinal metin.

Aşağıdaki kod, AutomateExcel dizesinin uzunluğunu belirlemek için Len Dize İşlevini nasıl kullanacağınızı gösterir:

1234567891011 TheLenFunction() Kullanarak AltDim valueOne As StringDim stringLength As IntegervalueOne = "Excel'i Otomatikleştir"stringLength = Len(değerBir)Debug.Print stringLengthAlt Bitiş

Sonuç:

Len İşlevi, 13 harften oluşan AutomateExcel metnindeki tüm karakterleri saydı.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave