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ş |