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ç: