@Robyrubyjane ...
Pada script yang contohkan di atas, pada bagian :
With xlSheetData
.Range("I1").Value = "Surname" '<-- BERDASARKAN
.Range("I2").Value = "*" & KATAKUNCI.Value & "*" '<-- KATA KUNCI
.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
.Range("I1:I2"), Copytorange:=.Range("K1:Q1"), Unique:=False
sNamaTabel = Choose(KANTORCABANG.ListIndex + 1, "HasilSurabaya", "HasilJakarta", "HasilSemarang")
TABELDATA.RowSource = .Range(sNamaTabel).ADDRESS(External:=True)
HASILCARI.Caption = TABELDATA.ListCount
End With
kita dapat memindahkan kolom pencarian berdasarkan sel I1, yakni pada bagian :
.Range("I1").Value = "Surname" '<-- BERDASARKAN
Jadi, dengan mengubah nilai sel tersebut dengan nama kolom tabel yang diinginkan, maka proses pencarian bisa dilakukan dari kolom yang diinginkan. Acuannya darimana? Dari nama kolomnya :

Maka, semisalkan ingin mencari nilai dari kolom Email, maka ganti nilai I1 menjadi Email. Coba ubah script prosedur Sub UserForm_Initialize() menjadi seperti berikut :
Private Sub UserForm_Initialize()
With KANTORCABANG
.AddItem "Surabaya"
.AddItem "Jakarta"
.AddItem "Semarang"
.ListIndex = 0
End With
BERDASARKAN.List = Application.Transpose(Sheet1.Range("A1:G1").Value)
BERDASARKAN.ListIndex = 1
End Sub
Sedangkan untuk script Event Procedure CARIDATA_Click() ubah menjadi (hanya di bagian berikut) :
With xlSheetData
.Range("I1").Value = BERDASARKAN '<-- BERDASARKAN
...
End With
Catatan : Untuk kolom ID, pencarian dengan Wildcard tidak akan berhasil. Karena nilai pada kolom ID bertipe numerik, sedangkan pencarian dengan Wildcard digunakan untuk nilai bertipe alphanumerik. Jadi, setidaknya ubah scriptnya menjadi :
With xlSheetData
.Range("I1").Value = BERDASARKAN '<-- BERDASARKAN
If BERDASARKAN.ListIndex = 0 Then
.Range("I2").Value = KATAKUNCI.Value
Else
.Range("I2").Value = "*" & KATAKUNCI.Value & "*" '<-- KATA KUNCI
End If
...
End With
Untuk link yang dimaksud, belum sempat saya lihat. Coba dulu implementasikan script di atas.
Demikian.