VBA Mid Function - Karakterleri Dizgenin Ortasından Ayıkla

İçindekiler

Bu öğretici, bir metin dizesinin ortasından karakterleri çıkarmak için Mid VBA işlevinin nasıl kullanılacağını gösterecektir.

Orta İşlev

Orta İşlev n Karakter Al

VBA Mid işlevi, m konumundan başlayan bir dizeden n karakter döndürür:

123456789 Alt MidExample_1()MsgBox Mid("ABCDEFGHI", 4, 1) 'Sonuç: "D"MsgBox Mid("ABCDEFGHI", 4, 2) 'Sonuç: "DE"MsgBox Mid("ABCDEFGHI", 4, 50) 'Sonuç: "DEFGHI"MsgBox Mid("ABCDEFG hI", 6, 1) 'Sonuç: "F"MsgBox Mid("ABCDEFG hI", 6, 2) 'Sonuç: "FG"MsgBox Mid("ABCDEFG hI", 6, 4) 'Sonuç: "FG h"Alt Bitiş

Orta İşlev Bir Değişkende n Karakter Al

Yukarıda gösterildiği gibi, yalnızca tırnak içine alınmış metin girerek bir dize tanımlayabilirsiniz. Ancak MID İşlevi, dize değişkenleriyle de çalışacaktır. Bu örnekler, m konumundan başlayarak bir dizeden n karakter çıkaracaktır.

12345678 Alt MidExample_2()Dim StrEx As String 'Bir dize değişkeni tanımlayınStrEx = "ABCDEFGHI"MsgBox Mid(StrEx, 2, 1) 'Sonuç: "B"MsgBox Mid(StrEx, 2, 2) 'Sonuç: "BC"MsgBox Mid(StrEx, 2, 50) 'Sonuç: "BCDEFGHI"Alt Bitiş

Orta İşlev Bir Hücreden n Karakter Alma

Dizeler VBA kodunda tanımlanabilir, ancak hücrelerdeki değerleri de kullanabilirsiniz. Bir hücrenin değerini okuyun, onu bir dizge değişkeninde tutun ve m konumundan başlayarak bu Çalışma Sayfası Hücresi değerinden n karakter çıkarın.

1234567891011 Alt MidExample_3()Dim StrEx As String 'Bir dize değişkeni tanımlayın'Çalışma sayfasındaki A1 hücresinin değerini okuyun Sayfa1StrEx = ThisWorkbook.Worksheets("Sayfa1").Range("A1").Value'Bu örnek için A1 hücresinin değeri "Güç seninle olsun"MsgBox Mid(StrEx, 4, 6) 'Sonuç: " F" (Başlangıçtaki boşluğa dikkat edin)MsgBox Mid(StrEx, 2, 8) 'Sonuç: "ay the F"MsgBox Mid(StrEx, 3, 4) 'Sonuç: "y th"Alt Bitiş

Orta İşlev n Karakteri Değiştir

Yukarıdaki örneklerde, Mid işlevi orijinal dizeyi değiştirmedi. Orijinal dizeyi olduğu gibi bırakarak bir kısmını geri verdi. Mid Function, bir dizgedeki karakterleri değiştirmek için kullanılabilir.

12345678910111213141516171819202122 Alt MidExample_4()Dim StrEx As String 'Bir dize değişkeni tanımlayınAlt MidExample_4()Dim StrEx As String 'Bir dize değişkeni tanımlayınStrEx = "Güç sizinle olsun"Orta(StrEx, 5, 1) = "VWXYZ"MsgBox StrEx 'Sonuç şudur: "Horce sizinle olsun"'Orta İşlev 5 konumunu buldu ve orijinal dizedeki 1 karakteri değiştirdiStrEx = "Güç sizinle olsun"Orta(StrEx, 5, 3) = "VWXYZ"MsgBox StrEx 'Sonuç: "VWX Horce sizinle olsun"'Orta İşlev 5. konumu buldu ve orijinal dizedeki 3 karakteri değiştirdiStrEx = "Güç sizinle olsun"Orta(StrEx, 5, 8) = "VWXYZ"MsgBox StrEx 'Sonuç: "VWXYZorce sizinle olsun"'Mid Function 5 konumunu buldu ve 8 karakteri değiştirmeye çalıştı."VWXYZ" sadece 5 karaktere sahip, bu yüzden sadece 5 karakter değiştirildi.Alt Bitiş

Orta İşlev Bir Cümleden İkinci Kelimeyi Çıkarma

Bir metindeki ikinci kelimeyi almak için VBA Mid işlevini VBA Instr işleviyle kullanabiliriz.

VBA InStr işlevi, metin içindeki bir karakterin konumunu döndürebilir.

1 InStr("İki kelime", " ") 'Sonuç 4

InStr'i ilk boşluğu bulmak için kullanabiliriz, daha sonra metindeki ikinci boşluğu bulmak için ilk boşluktan sonra aramaya başlayarak InStr'yi tekrar kullanabiliriz. Son olarak, ikinci sözcüğün başlangıç ​​konumunu ve uzunluğunu (iki boşluk konumu arasındaki fark) bildiğimiz için sözcüğü çıkarmak için Mid işlevini kullanabiliriz.

12345678910111213141516171819202122232425 Alt MidExample_5()Dim StrEx As String 'Bir dize değişkeni tanımlayınStartPos'u Tamsayı Olarak KarartTamsayı Olarak EndPos'u DimDize Olarak SecondWord'ü KarartınStrEx = "James Earl Jones Bir Oyuncudur"StartPos = InStr(StrEx, " ")'Sonuç 6'İlk boşluğun konumunu bulunEndPos = InStr(StartPos + 1, StrEx, " ")'Sonuç 11'İlk boşluktan sonra aramaya başlayarak ikinci boşluğun konumunu bulunSecondWord = Orta(StrEx, StartPos + 1, EndPos - StartPos - 1)'Mid, ilk boşluktan sonra başlayan karakterleri ayıklar (StartPos +1)'Mid, ikinci kelimenin uzunluğunu da kullanır.'Bu, boşluk konumları -1 arasındaki farktır.MsgBox İkinciKelime'Sonuç Earl'dürAlt Bitiş
wave wave wave wave wave