İçindekiler
ile çalışırken kullandığımız en önemli ve en yaygın fonksiyonlardan biri VBA Excel'de Orta fonksiyon . VBA Girdi olarak bir dize alır ve dizenin ortasından belirli sayıda karakteri çıktı olarak döndürür. Bugün bu makalede, size nasıl kullanabileceğinizi göstereceğim Orta fonksiyon . VBA uygun örnekler ve illüstrasyonlarla.
Bu geri dönecektir 9 dizesindeki karakterler "Angela Catherine Nevills" 'den başlayarak 8'inci karakter. "Catherine" .
Alıştırma Çalışma Kitabını İndirin
Bu makaleyi okurken alıştırma yapmak için bu alıştırma kitabını indirin.
VBA Orta Fonksiyon.xlsmExcel'de VBA'nın Orta İşlevine Giriş
⧭ Fonksiyon Hedefi:
Bu Orta fonksiyonu girdi olarak bir değer alır ve çıktı olarak değerin belirli bir konumundan başlayarak belirli sayıda karakter döndürür.
Değer bir dize, sayı veya hatta bir boolean .
Örneğin, eğer eklerseniz Mid("Angela Catherine Nevills",8,9), geri dönecek "Catherine" .
Eğer eklerseniz Mid(12345,2,3) , alacaksın 234.
Ve ekle Mid(False,2,3) , alacaksın als .
⧭ Sözdizimi:
Sözdizimi Orta fonksiyon . VBA öyle:
=Mid(String,Start as Long,[Length])
⧭ Argümanlar:
Tartışma | Gerekli / İsteğe bağlı | Açıklama |
---|---|---|
Dize | Gerekli | Bir dizi karakterin döndürüleceği dize. |
Başlangıç | Gerekli | Döndürülecek dizenin başlangıç karakteri. |
Uzunluk | Opsiyonel | Döndürülecek karakter sayısı. Varsayılan değer 1'dir. |
⧭ Dönüş Değeri:
Belirli bir konumdan başlayarak bir dizenin ortasından belirli sayıda karakter döndürür.
3 Excel'de VBA'nın Mid İşlevine Örnekler
Bu sefer, hadi Orta fonksiyon . VBA birkaç örnekle ayrıntılı olarak açıklayacağız.
1. Excel'de VBA'nın Orta İşlevini Kullanarak Bazı Kimliklerin Ortasından Belirli Sayıda Karakteri Ayırma
Burada bir veri setimiz var Kimlikler ve İsimler Saturn Group adlı bir şirketin bazı çalışanlarının.
İşte, burada Dördüncü için Yedinci Her bir ID'nin karakterleri ilgili çalışanın katılım yılını belirtir.
Şimdi bir Kullanıcı Tanımlı fonksiyon kullanarak Orta fonksiyon . VBA Bu, her çalışanın birleşme yılını Çalışan Kimliği .
Aşağıdakileri kullanabilirsiniz VBA Kod:
⧭ VBA Kodu:
Fonksiyon Birleştirme_Yılı(ID) Birleştirme_Yılı = Mid(ID, 4, 4) End Fonksiyon
Not: Bu kod, aşağıdaki gibi bir fonksiyon oluşturur Katılma_Yılı .
⧭ Çıktı:
Bu işlevi çalışma sayfanızın herhangi bir hücresinde bağımsız değişken olarak bir ID ile çalıştırın.
Burada, hücrede D4 formülü girdik:
=Birleşme_Yılı(B4)
İlk çalışanın katılım yılını döndürmüştür, 2021 .
Şimdi sürükleyebilirsiniz Doldurma Kolu geri kalan çalışanların katılım yıllarını almak için.
⧭ Kodun Açıklaması:
- İlk olarak, şöyle bir fonksiyon tanımlıyoruz Katılma_Yılı satırı tarafından girdi olarak bir kimlik alan Fonksiyon Joining_Year(ID) .
- Sonra çıkarıyoruz 4 konumundan başlayarak kimlikten karakterler 4 , çizgi tarafından Joining_Year = Mid(ID, 4, 4) .
- Hat Fonksiyonu Sonlandır fonksiyonun sonunu bildirir.
2. Excel'de VBA'nın Mid İşlevini Kullanarak Bazı E-posta Adreslerinden Uzantıların Çıkarılması
Şimdi veri kümesine çalışanların E-posta adreslerini içeren yeni bir sütun ekledik.
Bu sefer E-posta Adreslerinin uzantılarını Orta fonksiyonu VBA .
Bu VBA kodu olacak:
⧭ VBA Kodu:
Function Extension(Email_Address) For i = 1 To Len(Email_Address) If Mid(Email_Address, i, 1) = "@" Then Extension = Mid(Email_Address, i + 1, Len(Email_Address) - (i + 4)) End If Next i End Function
Not: Bu kod, aşağıdaki gibi bir fonksiyon oluşturur Uzatma .
⧭ Çıktı:
Bu işlevi çalışma sayfanızın herhangi bir hücresinde E-posta Adresi argüman olarak.
Burada, hücrede E4 formülü girdik:
=Extension(D4)
İlk e-posta adresinin uzantısını döndürdü.
Daha sonra Doldurma Kolu tüm e-posta adreslerinin uzantılarını çıkarmak için.
⧭ Kuralların Açıklanması
- İlk olarak, şöyle bir fonksiyon tanımlıyoruz Uzatma satırı tarafından girdi olarak herhangi bir isim alan Fonksiyon Uzantı(E-posta_Adresi) .
- Sonra bir yinelemeye bir for-loop 'nin her karakterini kontrol eden E-posta Adresi olup olmadığını görmek için @ ya da hat tarafından değil Eğer Mid(Email_Address, i, 1) = "@" ise .
- Eğer bir @ 'den gerekli uzantıyı çıkarır. E-posta Adresi çizgi tarafından Uzantı = Mid(E-posta_Adresi, i + 1, Len(E-posta_Adresi) - (i + 4)) .
- Son olarak, fonksiyonun sonunu bildiriyoruz.
3. Belirli Bir Metni İçerip İçermediğini Görmek İçin Bazı Metinlerin Kontrol Edilmesi
En önemli kullanım alanlarından biri Orta fonksiyon bir metnin belirli bir metni içerip içermediğini görmektir.
olup olmadığını kontrol etmek için bir fonksiyon geliştirelim. E-posta Adresleri terimini içerir "gmail" ya da değil.
Aşağıdakileri kullanabilirsiniz VBA Kod:
⧭ VBA Kodu:
Function Checking(Text1, Text2) For i = 1 To Len(Text1) If Mid(Text1, i, Len(Text2)) = Text2 Then Checking = "Yes" Exit For Else Checking = "No" End If Next i End Function
Not: Bu kod, aşağıdaki gibi bir fonksiyon oluşturur Kontrol .
⧭ Çıktı:
Bu işlevi çalışma sayfanızın herhangi bir hücresinde argüman olarak iki metinle çalıştırın.
Burada, hücrede E4 formülü girdik:
=Checking(D4, "gmail")
Geri döndü Evet. çünkü 1. e-posta adresi bir Gmail Adres.
Daha sonra Doldurma Kolu tüm E-posta Kimlikleri için aynı şeyi yapmak için.
⧭ Kodun Açıklaması:
- İlk olarak, şöyle bir fonksiyon tanımlıyoruz Kontrol satırı tarafından argüman olarak iki metin alan Fonksiyon Kontrol(Metin1,Metin2) .
- Daha sonra her bir segmenti kontrol eden bir for döngüsü başlatırız. Metin1 pozisyondan başlayarak 1 'ye eşit olup olmadığını görmek için Metin2 ya da değil, çizgi tarafından Eğer Mid(Metin1, i, Len(Metin2)) = Metin2 ise .
- Eğer bulursa Metin2 sonra geri döner "Evet" , aksi takdirde döndürür "Hayır" .
- Son olarak, fonksiyonu şu çizgi ile sonuçlandırıyoruz Fonksiyonu Sonlandır .
Hatırlanması Gerekenler
- Bu 1. argümanının Orta fonksiyon her zaman bir dize olmak zorunda değildir. Dize , a sayı ya da hatta bir boolean değer.
- Ama 2'nci ve 3'üncü argümanlar şu şekilde olmalıdır sayılar Onlar olabilir tamsayılar veya kesirler ama olmalı sayılar . Eğer öyleyse kesirler sonra Orta fonksiyon onları en yakın tamsayılar .