VBA Alt Dizesi - VBA İşlevlerini Kullanarak Alt Dize Nasıl Çıkarılır?

İçindekiler

Excel VBA Alt Dizesi

SubString, dizenin veya kısmının bir parçasıdır veya dizenin karakterine "SubString" adı verilir. VBA LEFT, RIGHT ve MID'de üç tür alt dize işlevi vardır, bunlar excel'deki çalışma sayfası alt dizelerine benzer.

Bir dize, bir dizi karakterden başka bir şey değildir ve karakterler alfabe, sayılar, özel karakterler olabilir ve bunların hepsini birleştirebilir.

Çoğu zaman Excel'de, dize olan verilerle çalışırken, amacımızı kolaylaştırmak için dizenin yalnızca bir bölümünü almamız gerekir. Kullanılacak dizenin tamamına ihtiyacımız olmayabilir, ancak kullanımımız için dizenin yalnızca bir kısmına ihtiyacımız var. Örneğin, "Sachin Tendulkar" adınız varsa, adın yalnızca ilk kısmına, yani yalnızca "Sachin" kısmına ihtiyacınız olabilir. Bu, Excel VBA'da dizenin SubString'i olarak adlandırılır. Bu dizelerle başa çıkmak için, excel kategorisindeki TEXT işlevi altında yerleşik işlevlerimiz var.

Bu makalede, alt dizeyi VBA'daki tam dizeden nasıl alacağımızı tartışacağız.

VBA'da SubString İşlevleri Nasıl Kullanılır?

Alt dizeyi dizeden çıkarmak için, yerleşik metin işlevlerinden bazılarına sahibiz ve önemli işlevlerden bazıları Excel'de LEFT, RIGHT, INSTR ve MID'dir. Fonksiyon Öğr Diğer üç işlevleri için destek işlevi olarak görev yapacak.

Alt dizeleri pratik olarak çıkarmak için bu işlevleri nasıl kullanacağımızı göreceğiz. Bunları anlamak için aşağıdaki örnekleri okuyun.

Örnek 1 - Sol İşlevi Kullanma

Tam adınız "Sachin Tendulkar" ise ve alt dize olarak yalnızca adın çıkarılmasına ihtiyacınız varsa, aynısını elde etmek için aşağıdaki kodu kullanın.

Adım 1: Bir makro adı oluşturun ve String olarak iki değişken tanımlayın.

Kod:

Sub SubString_Example1 () Dim FullName As String Dim FirstName As String End Sub

Adım 2: Şimdi FullName değişkenine "Sachin Tendulkar" adını atayın .

Kod:

Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" End Sub

3. Adım: Şimdi, FullName değişkeni "Sachin Tendulkar" değerini tutar. Şimdi tam addan ilk ismin excel VBA alt dizesini çıkarmamız gerekiyor. Bu nedenle, FirstName değişkeninin değerini LEFT işlevi aracılığıyla atayın .

Kod:

Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left (End Sub

Adım 4: VBA LEFT işlevinin ilk bağımsız değişkeni String; bu tam değer veya tam dizedir. Bu örnekte, tam değerimiz veya dizimiz FullName değişkenine atanan "Sachin Tendulkar" dır .

Bu nedenle, değişken olarak FullName değişkenini sağlayın .

Kod:

Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left End Sub

Adım 5: Bir sonraki argüman, sağladığımız dizeden kaç karaktere ihtiyacımız olduğudur, bu yüzden bu durumda, ilk isme " Sachin " ihtiyacımız var, bu yüzden tamamen sol taraftan 6 karaktere ihtiyacımız var .

Kod:

Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left (FullName, 6) End Sub

Adım 6: Şimdi sonucu VBA'da bir mesaj kutusunda gösterin.

Kod:

Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left (FullName, 6) MsgBox FirstName End Sub

Adım 7: Makroyu çalıştırın, mesaj kutusunda ilk adı bir alt dize olarak görün.

Örnek 2 - Sağdan SubString Alın

Alt dizeyi benzer şekilde soldan nasıl çıkardığımız gibi, sağdan da çıkarabiliriz. Örnek olarak aynı adı alın.

Adım 1: İki değişkeni Dize olarak tanımlayın.

Kod:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String End Sub

2. Adım: Her zaman olduğu gibi, değeri FullName değişkenine "Sachin Tendulkar" olarak atayın .

Kod:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" End Sub

Adım 3: Şimdi, LastName değişkeni için , RIGHT excel işlevi aracılığıyla değeri atayın.

Kod:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Sağ (End Sub

Adım 4: String bizim FullName'imizdir, bu yüzden değişkeni sağlayın .

Kod:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Sağ (FullName, End Sub

Adım 5: Uzunluk, sağ taraftan ihtiyacımız olan karakter sayısıdır. Sağ tarafta 9 karaktere ihtiyacımız var .

Kod:

Sub SubString_Example2 () Dim FullName As String Dim Soyadı As String FullName = "Sachin Tendulkar" LastName = Sağ (FullName, 9) End Sub

Adım 6: Bu değeri mesaj kutusunda gösterin .

Kod:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Sağ (FullName, 9) MsgBox LastName End Sub

Adım 7: Makroyu çalıştırın. Mesaj kutusunda soyadını göreceğiz.

Örnek 3 - Instr İşlevini Kullanma

Yukarıdaki örneklerde tek bir ismimiz vardı ve ihtiyacımız olan karakter sayısını sol ve sağdan sağladık. Ancak birçok isim olması durumunda, ad ve soyad karakterleri aynı değildir, isimden isme farklılık gösterecektir. Bu durumlarda, karakter sayısını doğrudan sağlayamayız, böylece Instr fonksiyonunu kullanabiliriz .

Instr işlevi dizede sağlanan karakter konumunu döndürür. Örneğin, aşağıdaki koda bakın.

Kod:

Sub SubString_Example3 () Dim Position As String Position = InStr (1, "Sachin", "a") MsgBox Position End Sub

InStr(1, “Sachin,” “a”), this will identify the position of the letter “a” as the first appearance in the string “Sachin.” In this case letter, “a” is in the second position. So we will get 2 as a result in the message box.

Like this, we can use the Instr function to find the space character between the first name and last name.

For example, look at the below name I have in the excel sheet.

Using LEFT, RIGHT, and Instr function, we can extract the substrings. Below is the code to extract the First Name.

Code:

Sub FirstName () Dim K As Long LR As Long LR = Cells (Rows.Count, 1) .End (xIUp). Row K = 2 - LR Hücreleri (K, 2) .Değer = Sol (Hücreler (K, 1) .Value, InStr (1, Cells (K, 1) .Value, "") - 1) Next K End Sub

Makroyu çalıştırın ve mesaj kutusunda ilk adı bir alt dize olarak görün.

Soyadı bir alt dize olarak çıkarmak için aşağıdaki kodu kullanın.

Kod:

Sub LastName () Dim K As Long Dim LR As Long LR = Cells (Rows.Count, 1) .End (xIUp). Row K = 2 - LR Hücreleri (K, 3) .Değer = Sağ (Hücreler (K, 1) .Value, Len (Cells (K, 1)) - InStr (1, Cells (K, 1) .Value, "")) Next K End Sub

Makroyu çalıştırın ve mesaj kutusunda soyadını göreceğiz.

Makro düğmesini çalışma sayfasına atadım, çalışma kitabını indirdim ve kullandım.

Ilginç makaleler...