Excel VBA'da Ayrı Dizeler - Kolay Excel Makroları

İçindekiler

Aşağıda bir programa bakacağız Excel VBA'sı o dizeleri ayırır.

Durum:

Çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırlarını ekleyin:

1. İlk olarak, String tipinde tam isim adında bir değişken, Tamsayı tipinde commaposition adında bir değişken ve Tamsayı tipinde i adında bir değişken tanımlıyoruz.

Dim fullname As String, commaposition As Integer, i As Integer

Karşılaştığımız sorun, dizeyi ayırmak istediğimiz yeri Excel VBA'ya söylememiz gerektiğidir. Smith, Mike söz konusu olduğunda virgül 6 konumundayken, Williams, Janet söz konusu olduğunda virgül 9 konumundadır.

2. Excel'de girilen her isim üzerinde işlemleri yürütmek için bir döngü kullanıyoruz. İlk olarak, fullname değişkenini başlatıyoruz. Ardından, virgülün konumunu bulmak için Instr işlevini kullanırız.

i = 2 ila 7 için
fullname = Hücreler(i, 1).Value
bileşim = InStr(tam ad, ",")

3. Son olarak virgülden sonraki kısmı B sütununa, virgülün önündeki kısmı C sütununa yazmak istiyoruz. Bunu şu satırları ekleyerek yapabilirsiniz:

Cells(i, 2).Value = Mid(tam ad, birleşim + 2)
Cells(i, 3).Value = Left(tam ad, birleştirme - 1)

Mid(fullname, commaposition + 2), tam adın 'commaposition + 2' karakteriyle başlayan kısmını istediğimiz anlamına gelir (bu tam olarak ilk addır).

Left(fullname, commaposition - 1), tam adın başlangıçtan 'commaposition-1' karakterine kadar olan kısmını istediğimiz anlamına gelir (bu tam olarak soyadıdır).

4. Döngüyü kapatmayı unutmayın.

sonraki ben

5. Aralığa virgül ve boşlukla ayrılmış altı ad ekleyin ("A2:A7").

6. Programı test edin.

Sonuç:

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave