Kalau di cells T1 ada isi teks berbunyi "1a2a3", maka jumlah angka di cells a1 dengan formula Len( T1 ) - Len( Substitute( T1 , "a" , "" ) ) + 1 Kalau di VBA ada variabel bernama T berisi teks berbunyi "1a2a3", maka jumlah angka di variabel T adalah Len( T ) - Len( Replace( T , "a" , "" ) ) + 1
Kalau di VBA mau pakai Split, maka perlu diingat bahwa VBA menggunakan array option base 0 by default. Artinya item ke-1 array memiliki index 0. Contoh : Variabel T berisi teks "1a2a3" Hasil Split( T , "a" ) adalah array 3 item, yaitu : item index ke-0 berisi teks '1' item index ke-1 berisi teks '2' item index ke-2 berisi teks '3' UBound adalah mengambil nomor index tertinggi dari suatu array. UBound( T ) hasilnya 2 karena nilai index array hasil split tertinggi di index ke-2 Jadi, pada kasus ini, kalau pakai UBound, bunyinya : UBound( Split( T , "a" ) ) + 1 Nah.. ini dengan asumsi bahwa VBA by default menggunakan option base 0. Kalau VBA nanti sudah pakai option base 1, dan script di atas sudah dipakai secara masif diberbagai file, maka ketika ada pengubahan menjadi option base 1, hasilnya salah semua. Pada saat option base 1, hasil Split( T , "a" ) adalah : item index ke-1 berisi teks '1' item index ke-2 berisi teks '2' item index ke-3 berisi teks '3' Sehingga UBound( Split( T , "a" ) ) menghasilkan nilai 3 (nilai index tertinggi hasil split adalah 3) Jadi bunyi UBound( Split( T , "a" ) ) + 1 menghasilkan 4. Salah, karena hasil yang diharapkan adalah 3. Umumnya, yang aman begini : UBound( Split( T , "a" ) ) - LBound( Split( T , "a" ) ) + 1 Berhubung ada proses split 2 kali, biasanya terus pakai variabel supaya menjadi lebih cepat. dim T as string, sArr() as string T="1a2a3" sArr=Split( T , "a" ) debug.print UBound( sArr ) - LBound( sArr ) + 1 Kalau proses di atas dimasukkan dalam sebuah loop, bisa jadi proses split akan terasa lebih lambat dibanding pakai Len dan Replace Regards, Kid 2017-05-09 14:38 GMT+07:00 'Heru Safrudin' [email protected] [belajar-excel] < [email protected]>: > > > Dear Mr. Kid > > Sayang sekali saya belum mudheng memakai substitute > > Akhirnya pakai cara lain yaitu: > > > > UBound(Split(TEKS, Chr(10))) > > > > > > Wassalam > > Heru Safrudin > > > > *From:* [email protected] [mailto:belajar-excel@ > yahoogroups.com] > *Sent:* 09 Mei 2017 13:55 > *To:* [email protected] > *Subject:* Re: [belajar-excel] Menghitung jumlah baris dalam variable > berisi teks > > > > > > Hai Heru, > > Sama seperti pakai formula dalam cells, cuma substitute diganti replace. > > Regards, > > Kid > Sent from my smart enough phone > > > On May 9, 2017, at 11:57, 'Heru Safrudin' fcprocessing.bisikediri@bisi. > co.id [belajar-excel] <[email protected]> wrote: > > > > Dear B-Exceller, > > > > Bagaimanakah kode macro untuk menghitung jumlah baris dalam variable > berisi teks, contoh: > > Teks=”A” & Chr(10) & “B” & Chr(10) & “C” > > > > Mohon pembelajarannya > > > > > > Wassalam > > Heru Safrudin > > > > >

