VBA Birleştirme | VBA'da Dizeleri Birlikte Nasıl Birleştirebilirim?

Birleştirme, kullandığımız ve birleştirmek için ve işareti operatörü olarak da bilinen excel'e benzer şekilde, iki değeri veya iki dizeyi birleştirmek anlamına gelir, iki dizeyi birleştirir ve String 1 & String 2 gibi işleç, şimdi hatırlanması gereken önemli bir şey var ve & işlecini kullanırken boşluk sağlamamız gerekir, yoksa VBA bunu uzun süre dikkate alır.

VBA Concatenate Strings

VBA Concatenate, iki veya daha fazla değer hücresi değerini bir araya getirmek için kullandığımız şeylerden biri, basit bir dille birleştiriyor diyorsam, tam değere sahip olmak için iki veya daha fazla değeri bir araya getiriyor.

Excel'de CONCATENATE adında, iki veya daha fazla değeri veya iki veya daha fazla hücre değerini bir araya getirecek bir fonksiyonumuz var.

Ancak VBA'da iki veya daha fazla değeri bir araya getirmek için herhangi bir yerleşik işleve sahip değiliz. Aslında, bir çalışma sayfası işlevi olarak VBA CONCATENATE işlevine erişmek için çalışma sayfası işlev sınıfına bile erişemiyoruz.

VBA'da Dizeler Nasıl Birleştirilir?

Değerleri birleştirmek için herhangi bir yerleşik işlevimiz yoksa ve çalışma sayfası işlevi bile VBA ile entegre değilse. Şimdi sorun, değerleri nasıl birleştiririz?

Yerleşik işlevler olmamasına rağmen yine de "ve işareti" (&) simgesini kullanarak VBA'da birleştirebiliriz.

Gönderilerimizi düzenli olarak takip ediyorsanız, kodlamamızda sıklıkla ve (&) simgesini kullanırız.

Örneğin, adınız ve soyadınız ayrı ayrı varsa, bu ikisini birleştirip tam ad olarak yapabiliriz. VBA makro kodunu kendi başımıza yazmak için aşağıdaki adımları izleyin.

Adım 1: Visual Basic Editor'a gidin ve bir VBA alt prosedürü oluşturun.

Adım 2: Üç değişkeni Dize olarak tanımlayın .

Kod:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String End Sub 

Adım 3: Şimdi değişkene ilk adı ve soyadı atayın .

Kod:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String First_Name = "Sachin" Last_Name = "Tendulkar" End Sub 

Adım 4: Şimdi bu iki adı ve işareti değişkenini kullanarak Tam_Adı değişkeniyle birleştirin.

Kod:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String First_Name = "Sachin" Last_Name = "Tendulkar" Full_Name = First_Name & Last_Name End Sub 

Adım 5: Şimdi mesaj kutusunda Full_Name değişkeninin değerini gösterin .

Kod:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String First_Name = "Sachin" Last_Name = "Tendulkar" Full_Name = First_Name & Last_Name MsgBox Full_Name End Sub 

Şimdi kodu çalıştırın, mesaj kutusunda tam adı alacağız.

Bu tam adla ilgili sorun, ad ve soyadı birleştirirken bir ad ve soyadı ayırıcı karakter boşluğu eklememiş olmamız, boşluk karakterini de birleştirmemizdir.

Kod:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String First_Name = "Sachin" Last_Name = "Tendulkar" Full_Name = First_Name & "" & Last_Name MsgBox Full_Name End Sub 

Bu şimdi uygun bir tam ad verecektir.

Bunun gibi ve işareti sembolünü kullanarak değerleri birleştirebiliriz. Şimdi, tam bir isim yapmak için Ad ve Soyadı birlikte çözme çalışma sayfası problemini çözeceğiz.

Birçok adı birleştirmemiz gerektiğinden, adı ve soyadını birleştirmek için döngüler kullanmamız gerekir. Aşağıdaki kod işi sizin için yapacak.

Kod:

 Sub Concatenate_Example1 () Dim i As Integer For i = 2 to 9 Cell (i, 3) .Value = Cells (i, 1) & "" & Cells (i, 2) Next i End Sub 

Bu, tıpkı VBA birleştirme işlevimiz gibi ilk adı ve soyadı birleştirecektir.

Ampersand VBA Birleştirmesinde Yaygın Hata

Kodlarımı fark ederseniz, değerler arasına boşluk karakteri bir ve işareti simgesi ekledim. Bu, VBA programlamanın doğası gereği önemlidir.

Değerleri ve ve işaretlerini bir arada kullanamayız, aksi takdirde aşağıdaki gibi Derleme Hatası alırız.

JOIN İşlevini Kullanarak VBA Concatenate

VBA'da değerleri birleştirmek için JOIN işlevini kullanabiliriz. Önce, VBA JOIN işlevi sözdizimine bakın.

  • Dizi , değerlerimizi tutan bir diziden başka bir şey değildir. Örneğin hem ad hem de soyadı.
  • Sınırlayıcı , her bir dizi değeri, bu durumda boşluk karakteri arasındaki ayırıcıdan başka bir şey değildir.

Aşağıdaki kod aynı örneği gösterecektir.

Kod:

 Sub Concatenate_Example2() Dim MyValues As Variant Dim Full_Name As String MyValues = Array("Sachin", "Tendulkar") Full_Name = Join(MyValues, " ") MsgBox Full_Name End Sub