VBA Dizeyi Diziye Böl - Excel VBA'da Dizeyi Diziye Nasıl Bölünür?

Excel VBA Dizeyi Diziye Böl

Bir dize, bu karakterler bölündüğünde ve bir değişkende depolandığında, bu değişken, bu karakterler için bir dizi haline gelir ve bir diziyi bir diziye ayırmak için kullandığımız yöntem, SPLIT işlevini kullanmaktır. dizeyi tek boyutlu bir dizeye bölen vba.

VBA'daki çalışma sayfalarında olduğu gibi, String veya Text değerleriyle başa çıkmak için işlevlerimiz var. İlk adı, soyadı, ikinci adı vb. Ayıklamak gibi dize işlemlerine çok aşinayız. Peki, dize değerini VBA'da dizilere bölme fikrine ne dersiniz? Evet, doğru duydunuz, VBA kodlamasını kullanarak dize cümlesini diziye bölebiliriz ve bu özel makalede, dizeyi Excel VBA'da bir diziye nasıl böleceğinizi göstereceğiz.

Diziyi Diziye Böl nedir?

Önce şunu açıklığa kavuşturayım: "Diziye Dizge", "cümlenin veya dizenin farklı bölümleri birden çok parçaya bölünecek" ten başka bir şey değildir. Örneğin, "Bangalore, Karnataka'nın başkentidir" ise, o zaman her kelime farklı bir dizidir.

Öyleyse, bu cümlenin diziye nasıl bölüneceği bu makalenin konusudur.

Bölünmüş Dizeyi Excel VBA'da Diziye Dönüştürme

Bölünmüş dizeyi VBA'da bir diziye dönüştürmek için "SPLIT" adlı bir işleve sahibiz. Bu, sağlanan dize değerini sağlanan sınırlayıcıya göre farklı parçalara bölme görevini gerçekleştiren bir VBA işlevidir.

Örneğin, "Bangalore, Karnataka'nın başkentidir" ise, her kelime arasındaki sınırlayıcı boşluktur.

SPLIT işlevinin sözdizimi aşağıdadır.

  • Değer veya İfade: Bu, dizenin her bir parçasını ayrılarak diziye dönüştürmeye çalıştığımız dize veya metin değeridir.
  • (Sınırlayıcı): Bu, dizedeki her kelimeyi ayıran ortak şeylerden başka bir şey değildir. “Bangalore, Karnataka'nın başkentidir” cümlesinde her kelime boşluk karakteriyle ayrılmış, dolayısıyla sınırlayıcımız buradaki boşluktur.
  • (Limit): Limit, sonuç olarak kaç parça istediğimizden başka bir şey değildir. "Bangalore, Karnataka'nın başkentidir" cümlesindeki bir örnek için, sadece üç bölüme ihtiyacımız varsa yedi bölümümüz var, o zaman ilk bölümü "Bangalore", ikinci bölümü "olduğu" ve üçüncü bölümü geri kalanı olarak alacağız cümle, yani "Karnataka'nın başkenti."
  • (Karşılaştır): Bu, zamanın% 99'unda kullanılmadığından, bu noktada buna değinmeyelim.

Örnek 1

Tamam, şimdi pratik örnekler görelim.

Adım 1: Dize değerini tutmak için VBA değişkenini tanımlayın.

Kod:

Sub String_To_Array () Dim StringValue As String End Sub

2. Adım: Bu değişken için "Bangalore, Karnataka'nın başkentidir" dizesini atayın.

Kod:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore, Karnatka'nın başkentidir" End Sub

Adım 3: Ardından, yukarıdaki dize değerinin her bir parçasını tutabilecek bir değişken daha tanımlayın. Bu konuda aklımızda tutmamız gereken cümle birden fazla kelime içerdiğinden, birden fazla değeri tutması için değişkeni “Dizi” olarak tanımlamamız gerekir.

Bu durumda, dizede 7 kelimemiz var, bu nedenle diziyi aşağıdaki gibi tanımlayın.

Kod:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore, Karnatka'nın başkentidir" Dim SingleValue () As String End Sub

Şimdi bu dizi değişkeni için, dizeyi Excel VBA'da bir diziye bölmek için SPLIT işlevini kullanacağız.

Kod:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore, Karnataka'nın başkentidir" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub

İfade bizim dize değerimizdir, yani değişken zaten dize değerini tutar, bu nedenle yalnızca değişken adını girin.

Bu dizedeki sınırlayıcı boşluk karakteridir, bu nedenle aynı şeyi sağlayın.

Kod:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore, Karnataka'nın başkentidir" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub

Şu an itibariyle, SPLIT işlevinin diğer bölümlerini bırakın.

SPLIT işlevi dize değerini 7 parçaya böler, her kelime boşluk karakteri pahasına ayrılmıştır. "SingleValue" değişkenini dizi olarak tanımladığımız için, bu değişkene 7 değeri de atayabiliriz.

Kodu aşağıdaki gibi yazabiliriz.

Kod:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore, Karnataka'nın başkentidir" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub

Kodu çalıştırın ve mesaj kutusuna ne aldığımızı görün.

Şu an itibariyle ilk kelimeyi, yani "Bangalore" kelimesini görebiliyoruz, daha fazla kelime göstermek için kodu aşağıdaki gibi yazabiliriz.

Kod:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore, Karnataka'nın başkentidir" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & vbNewLine & SingleValue (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub

Şimdi kodu çalıştırın ve mesaj kutusuna ne aldığımızı görün.

Her bir kelime dizilere bölünmüştür.

Örnek 2

Şimdi bu değerleri hücrelere, yani her kelimeyi ayrı bir hücrede depoladığınızı hayal edin. Bunun için FOR NEXT döngüsünü VBA'ya dahil etmemiz gerekiyor.

Aşağıdaki kod her kelimeyi ayrı hücrelere ekleyecektir.

Sub String_To_Array1 () Dim StringValue As String StringValue = "Bangalore, Karnataka'nın başkentidir" Dim SingleValue () As String SingleValue = Split (StringValue, "") Dim k As Integer For k = 1 to 7 Cells (1, k) .Value = SingleValue (k - 1) Next k End Sub

Bu, aşağıdaki resimde gösterildiği gibi her kelimeyi ekleyecektir.

Hatırlanacak şeyler

  • Kodun dinamik olması için dizi ve döngüler birlikte kullanılır.
  • SPLIT işlevi, cümledeki her kelimeyi ayıran ortak bir sınırlayıcı gerektirir.
  • Dizi uzunluğu 1'den değil, sıfırdan başlar.

Ilginç makaleler...