EXCEL VBA'DA INSTRREV İFADESİ

 

VBA INSTRREV, bir dizenin diğerinin içindeki konumunu belirlemek için kullanılan yerleşik bir dize işlevidir ve aramaya dizenin başından değil sonundan başlar. Daha basit bir ifadeyle, belirli bir dizede bir alt dizenin son oluşumunu veya sondan itibaren belirli bir oluşumu bulmanıza yardımcı olur.


Aşağıdaki örnekte, belirli bir dosya adından dosya uzantısını çıkarmayı hedefliyoruz. İki dize değişkeni, filename ve fileExtension ile ExtractFileExtension adlı bir alt rutin tanımlayarak başlıyoruz. Dosya adına "document_report.pdf" değeri atanır. Dosya uzantısını çıkarmak için, VBA INSTRREV işlevi dosya adındaki son noktanın (.) konumunu bulmak için kullanılır. VBA'daki Mid işlevi bu konumdan sonra başlayan alt dizeyi alır.

VBA InStrRev - Tanım Örneği - 1

Son olarak, çıkarılan dosyanın uzantısını gösteren bir mesaj kutusu görüntülenir; bu durumda uzantı “pdf”tir.

VBA InStrRev - Tanım Örneği - 2

ÖNEMLİ NOKTALAR

  • VBA InStrRev, bir dizenin sonundan başlayarak alt dizenin konumunu bulmak için değerli bir fonksiyondur.
  • VBA InStrRev varsayılan olarak ikili (büyük/küçük harfe duyarlı) bir karşılaştırma gerçekleştirir. Ancak, isteğe bağlı "compare" parametresi metinsel (büyük/küçük harfe duyarlı olmayan) aramalar yapmak üzere ayarlanabilir ve alt dizeleri eşleştirmede esneklik sağlar.
  • InStrRev'in belirgin bir avantajı, bir alt dize mevcut olmadığında 0 değerini net bir şekilde döndürmesidir.
  • VBA InStrRev, Mid, Left veya Right gibi diğer VBA dize işlevleriyle kusursuz bir şekilde entegre olabilir ve karmaşık dize işlemlerini ve çıkarmalarını kolaylıkla kolaylaştırır.

Sözdizimi

INSTRREV'in sözdizimi aşağıdaki gibidir:

INSTRREV(string_check, string_search[, start[, compare]])

ParametreTanım
dize_kontrolüArama yapmak istediğiniz dize.
dize_aramaBulmak istediğiniz alt dize.
Başlat (isteğe bağlı)Aramanın başlangıç ​​pozisyonu, sondan sayılarak. Varsayılan -1'dir (dizenin sonu).
karşılaştır (isteğe bağlı)Yapılacak karşılaştırmanın türü.
  • string_check Değerine dayalı Dönüş Değerleri:

InStrRev aşağıdaki değerleri döndürür.

Aradığınız dize şuysa:InStrRev geri döner
 sıfır uzunluğunda0
- HükümsüzHükümsüz
 sıfır uzunluklubaşlangıç
- HükümsüzHükümsüz
 bulunamadı0
 başlat > Len( stringcheck )0


VBA INSTRREV Fonksiyonu Nasıl Kullanılır?

  1. Excel'i açın ve VBA Editörünü açmak için ALT + F11 tuşlarına basın.


    VBA INSTRREV Fonksiyonu Nasıl Kullanılır - Adım 1

  2. Menüde “Ekle”ye tıklayıp “Modül”ü seçerek yeni bir modül ekleyin.


    VBA INSTRREV Fonksiyonu Nasıl Kullanılır - Adım 2

  3. Modül penceresinde VBA kodunuzu yazmaya başlayabilirsiniz.

    Sub anahtar sözcüğünü ve ardından altyordam adını kullanarak bir altyordam tanımlayarak başlayın.

    Örneğin: Sub FindSubstring()

  4. Arama yapmak istediğiniz dizeyi, aradığınız alt dizeyi ve sonucu depolayacak değişkenler tanımlayın.


    Örnek:
    Dim string_check As String
    Dim string_search As String
    Dim result As Integer

  5. string_check ve string_search değişkenlerine istediğiniz değerleri atayın.


    Örnek:
    string_check = “Bu, içinde arama yapılacak dizedir.”
    string_search = “arama”

  6. Ana dizedeki alt dizenin konumunu, sondan başlayarak belirlemek için INSTRREV fonksiyonunu kullanın.


    Örnek:
    result = InStrRev(string_check, string_search)

  7. Sonucu bir mesaj kutusu kullanarak görüntüleyebilirsiniz.


    Örnek:
    MsgBox “Alt dize şu konumdan başlar: ” & result

  8. Alt programı çalıştırmak için F5 tuşuna basın.

    Alt dizenin ana dize içindeki konumunu belirten bir ileti kutusu görüntülenir.

Örnekler

Örnek 1 – Bir Karakterin Son Oluşumunu Bulma

Bu örnekte, “Hello World” dizesindeki “l” harfinin son örneğini bulacağız ve bir mesaj kutusunda konumunu göstereceğiz.

  • Adım 1: Yeni modülde ilk olarak LastOccurrence adında yeni bir alt rutin tanımlayacağız.
Excel'de VBA InStrRev - Örnek 1 - Adım 1
  • Adım 2: Burada, Integer türünde result adlı bir değişken bildireceğiz. Bu değişken, istediğimiz karakterin son oluşumunun konumunu saklayacaktır.
Örnek 1 - Adım 2
  • Adım 3: “Hello World” dizesinde “l” karakterinin son oluşumunu bulmak için InStrRev fonksiyonunu kullanırız. Sonuç result değişkeninde saklanır.
Örnek 1 - Adım 3
  • Adım 4: Burada, “l” harfinin son oluşumunun konumunu gösteren bir mesaj kutusu görüntülüyoruz.
Örnek 1 - Adım 4
  • Adım 5: Şimdi makroyu kaydedin ve çalıştır'a tıklayın. Çalıştırıldığında, VBA InStrRev fonksiyonu ilk karakterden (1. konum) saymaya başlar ve "Hello World"deki son "l" dizedeki onuncu karakterdir.

VBA kodu, “Hello World” ifadesindeki “l” harfinin son örneğinin 10. konumda olduğunu belirten bir mesaj kutusu görüntüler.

Excel'de VBA InStrRev - Örnek 1 - Adım 5

İşte tam kod:

Sub LastOccurrence()
Dim result As Integer
result = InStrRev(“Merhaba Dünya”, “l”)
MsgBox “'l'nin son oluşumu şu konumdadır: ” & result
End Sub


Örnek 2 – Bir Karakterin İkinci Son Oluşumunu Bulma

Bu örnekte, “Hello World” dizesindeki “l” harfinin sondan ikinci oluşumunu tespit ediyoruz ve VBA Instrrev ikinci oluşum fonksiyonunu kullanarak bir ileti kutusundaki konumunu gösteriyoruz.

  • Adım 1: İlk olarak SecondLastOccurrence adında bir alt rutin başlatıyoruz.
Excel'de VBA InStrRev - Örnek 2 - Adım 1
  • Adım 2: Bu adımda, iki tamsayı değişkeni, positionFirst ve positionSecond, bildirilir. Bunlar sırasıyla "l"nin son ve sondan ikinci oluşumlarının konumlarını depolar.
Örnek 2 - Adım 2
  • Adım 3: Sonra, “Hello World” ifadesindeki “l” harfinin son örneğini bulup, konumunu positionFirst'e kaydediyoruz.
Örnek 2 - Adım 3
  • Adım 4: Sondan ikinci oluşumu bulmak için, aramaya son oluşumdan bir önceki konumdan başlarız. Bu, InStrRev'in aynı oluşumu tekrar döndürmemesini sağlar.
Örnek 2 - Adım 4
  • Adım 5: Burada, bir ileti kutusu sondan ikinci oluşumun konumunu görüntüler.
Örnek 2 - Adım 5
  • Adım 6: Şimdi kaydedip Çalıştır'a tıkladığınızda, InStrRev ilk önce 10. konumdaki son "l" harfini belirler.

Daha sonra, bu son “l”nin pozisyonundan bir eksiği başlangıç ​​noktası olarak kullanarak, fonksiyon tekrar ters yönde arama yaparak bir sonraki “l”yi, yani 4. pozisyonda bulunan sondan ikinci oluşumu bulur.

"l" harfinin sondan ikinci kez geçtiği yerin 4. konumda olduğunu belirten bir mesaj kutusu görüntülenir.

Excel'de VBA InStrRev - Örnek 2 - Adım 6

İşte tam kod:

Sub SecondLastOccurrence()
Dim positionFirst, positionSecond As Integer
positionFirst = InStrRev(“Merhaba Dünya”, “l”)
positionSecond = InStrRev(“Merhaba Dünya”, “l”, positionFirst – 1)
MsgBox “'l'nin sondan ikinci oluşumu şu konumdadır: ” & positionSecond
End Sub

Örnek 3 – E-postadan Alan Adı Çıkarma

Bu örnekte, VBA InStrRev ve Mid fonksiyonlarını kullanarak “john.doe@example.com” e-postasının alan adı kısmını çıkaracağız ve görüntüleyeceğiz.

  • Adım 1: ExtractDomain adında yeni bir alt rutin tanımlayarak başlıyoruz.
Excel VBA InStrRev - Örnek 3 - Adım 1
  • Adım 2: Daha sonra, iki dize değişkeni, email ve domain, tanımlanır. 'email' e-posta adresini depolarken, 'domain' çıkarılan alan adını depolar.
Örnek 3 - Adım 2
  • Adım 3: “john.doe@example.com” e-posta adresini email değişkenine atıyoruz.
Örnek 3 - Adım 3
  • Adım 4: Etki alanını çıkarmak için, “@” konumunu bulmalı ve sonrasındaki her şeyi çıkarmalıyız. “@” konumunu bulmak için InStrRev'i ve “@” sonrasındaki bir konumdan dizenin sonuna kadar alt dizeyi çıkarmak için Mid fonksiyonunu kullanırız.
Örnek 3 - Adım 4
  • Adım 5 : Son olarak, e-posta adresinden çıkarılan alan adını gösteren bir mesaj kutusu görüntülenir.
Örnek 3 - Adım 5
  • Adım 6: Burada makro, e-posta dizisindeki “@” sembolünün konumunu bulmak için InStrRev işlevini kullanır. Mid işlevi daha sonra etki alanı bölümünü “@” sembolünden hemen sonraki konumdan dizenin sonuna kadar çıkarır.

Makroyu kaydedip “Çalıştır”a tıkladığınızda, e-postanın alan adının “example.com” olduğunu belirten bir mesaj kutusu görüntülenir.

Excel VBA InStrRev - Örnek 3 - Adım 6

İşte tam kod:

Sub ExtractDomain()
Dim e-posta, etki alanı As String
e-posta = “john.doe@example.com”
etki alanı = Mid(e-posta, InStrRev(e-posta, “@”) + 1)
MsgBox “E-postanın etki alanı: ” & etki alanı
End Sub


Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...