Ok Mr.

Mantab sekali penjelasannya


Terima kasih buanyaak





Wassalam


Heru Safrudin





From: [email protected] [mailto:[email protected]]
Sent: 09 Mei 2017 16:23
To: BeExcel
Subject: Re: [belajar-excel] Menghitung jumlah baris dalam variable berisi teks








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:[email protected]]
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' [email protected] 
[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












Kirim email ke