Hai Lukman,
Untuk formula sederhana seperti contoh tersebut, biasanya dibiarkan
dipasang dalam cells saja. Menghitung dengan perintah VBA jauh lebih lambat
dibanding dibiarkan berada dalam cells dan lebih ribet mengubah-ubahnya.
Hasil dari kalkulasi formula dalam cell yang digunakan oleh VBA. Metode ini
jauh lebih efisien untuk berbagai jumlah record data yang akan diproses.
Terkadang muncul ketidak efisienan ketika ada formula proses yang tidak
sederhana atau menggunakan fungsi volatile dalam formula.
otherwise...
Ketika ingin semuanya di-VBA-ken, banyak pilihan dalam memanfaatkan formula
melalui VBA.
Antara lain : =ISERROR(MATCH("Ticker";A1:K1;0))
1. WorksheetFunction :
dim bResult as boolean
with application.worksheetfunction
bresult=.iserror( .match( "Ticker" , A1:K1 ,0 ) )
end with
2. Evaluate :
dim bResult as boolean
bresult =evaluate( "=ISERROR(MATCH(""Ticker"";A1:K1;0))" )
3. Pasang formula ke cell lalu di values
application.calculation=xlcalculationautomatic
with sheets("nama sheet hasil").range("alamat cell hasil")
.formula="=ISERROR(MATCH(""Ticker"";A1:K1;0))"
.value=.value
end with
4. Loop (jika data yang diproses sedikit [kurang dari 50K loop], akan lebih
cepat dari 3 cara di atas)
dim lCells as long, bResult as boolean
with range("a1:k1")
for lcells=1 to .cells.count
if .cells( lcells ).value<>"Ticker" then
bresult=true
exit for
endif
next lcells
end with
Wassalam,
Kid.
On Fri, Oct 10, 2014 at 3:54 PM, lkm jktind [email protected]
[belajar-excel] <[email protected]> wrote:
>
>
> Tanya :
>
> Kalau Di worksheet :
> =ISERROR(MATCH("Ticker";A1:K1;0))
> =ISERROR(MATCH("Low";A1:K1;0))
> =ISERROR(FIND("(";C14;1))
> =ISERROR(FIND("H";C14;1))
>
> Kalau di VBA harus pakai apa ?
>
> Salam
>
> Lukman
>
>
>