Hai Him mah,

Misal ada prosedur bernama Coba
public sub Coba()
      dim shtAsal as worksheet
      set shtAsal=sheets("asal")
      set shtAsal=nothing
end sub

Pada saat deklarasi variabel object (dim shtAsal as worksheet), maka
variabel bernama shtAsal dibuat dalam memory
Kkemudian variabel tersebut diisi dengan perintah :
    set shtAsal = sheets("asal")
maka variabel shtAsal akan berisi pointer ke object dari class worksheet
yang bernama 'asal'
Pada proses :
    set shtAsal=nothing
maka isi variabel shtAsal akan dikosongkan alias tidak ada pointer merujuk
ke object worksheet manapun.
Begitu prosedur selesai dieksekusi (sampai baris End Sub), maka variabel
shtAsal akan di-destroy dari memory.

Jika disebuah class module object  :
dim shtAktif as worksheet

public sub Coba()
      dim shtAsal as worksheet
      set shtAsal=sheets("asal")
      set shtAsal=nothing
      set shtAktif=sheets("mula")
end sub

Maka shtAktif akan terus berisi pointer ke sheet bernama 'mula' saat
prosedur 'coba' diproses.
Meski prosedur 'coba' sudah sampai di baris End Sub, isi variabel shtAktif
akan tetap berupa pointer yang merujuk ke sheet 'mula'

ketika prosedur Buang() seperti dibawah ini dijalankan :
public sub Buang()
      set shtAktif=nothing
end sub

maka isi shtAktif akan dikosongkan. Variabelnya sendiri tetap tidak di-destroy
dari memory meski isinya adalah nothing (tidak merujuk object worksheet
manapun). Jika workbook ditutup, baru variabel shtAktif akan di destroy
dari memori, karena variabel shtAktif adalah member dari workbook tersebut.

Wassalam,
Kid.





2012/11/4 him mah <[email protected]>

> **
>
>
> kita sudah ngeset suatu variable
> misal :
> dim shtAsal as sheet
> set shtAsal=sheets("asal").select
>
> apakah kalau sudah selesai perlu dibuat
>
> set shtAsal =nothing
>
> kalau ngga di set seperti itu apakah pengaruhnya, dan semua variable
> harus di set seperti itu
>  
>

Kirim email ke