Dear Be-Excel,
Waktu ngebedah file2 milis tempo dulu, saya menemukan "fungsi" Collection dalam
VBA.Kalo ndak salah, Collection pertama kali dikenalkan oleh Pak De Premor,
ketika menjawab soal filtering data berdasarkan nama perusahaan.
Ada hal yang menarik dan belum saya dapatkan jawabannya mengenai collection
tersebut (baik dalam bentuk string maupun Value.
Untuk test case saya mengambil contoh dalam bentuk value.Ceritanya begini :
Saya mempunyai data dalam bentuk Value di kolom A
Saya membuat macro seperti ini :
Sub UnikAngka()
Dim SrcData As Range, Rng As Range
Dim cKode As New Collection
Dim LRow As Long
Set SrcData = Range("A1", Range("A1").End(xlDown))
On Error Resume Next
For Each Rng In SrcData
cKode.Add Rng.Value
Next
For LRow = 1 To cKode.Count
Range("B" & LRow) = cKode.Item(LRow)
Next
End Sub
Ketika saya jalankan macronya, hasilnya seoerti ini :
Tetapi jika Code berwarna merah (cKode.Add Rng.Value) saya ganti dengan :
cKode.Add Trim(Rng), CStr(Rng)
maka hasilnya menjadi unique seperti ini :
Ada beberapa hal yang menarik (menurut saya) yang ingin saya tanyakan :-
Mengapa Value harus pakai Trim() dan Cstr() ?- Mengapa jika dipakai salah satu
maka hasilnya tampil semua (bukan unique valuenya saja) ?- Mengapa jika dipakai
keduanya ( Trim() dan Cstr() ) maka hasilnya Unique Value ?
Semoga para sesepuh yang masih bertapa ditempat sunyi maut turun gunung untuk
membantu menjawabnya.
Terima kasih.
Salam,HK