Wa'alaikumussalam wr wb
Hai Tio,
Pertanyaan 1 :
Out of memory bisa disebabkan oleh banyak hal tergantung proses yang
dilakukan, antara lain :
1. Proses copy suatu range yang cukup luas dan banyak (berulang) tapi tidak
disertai application.cutcopymode=false setelah proses paste dilakukan.
> disiplinlah menambahkan baris Application.cutcopymode=false setelah
proses paste
2. Proses pengambilan data melalui data connection (fitur get external
data) dengan jumlah records yang sangat banyak.
> perbaiki query dan kurangi jumlah records yang harus diambil.
3. Terlalu banyak workbook yang dibuka dalam 1 (SATU) instansi aplikasi
Excel. INGAT, Excel bisa dibuka dalam beberapa instansi aplikasi. Artinya,
jika 1 instansi Excel diberi ijin menggunakan RAM 2GB, maka jika ada 2
instansi Excel, maka 2 buah Excel itu dapat menggunakan RAM 4GB (bila RAM
mencukupi). Dalam setiap instansi Excel bisa dibuka banyak workbook.
> Mulailah mengurangi kebiasaan membuka workbook yang terlalu banyak,
apalagi link formula antar workbook.
Pertanyaan 2 :
1. kenali proses yang dilakukan, apakah proses tersebut membutuhkan banyak
memory atau tidak.
> Kalau ambil data dari database sebanyak 50juta records berarti besar kan,
maka pasti ada potensi out of memory, jadi gak usah ambil segitu banyak.
Jumlah records maksimal yang bisa diambil sampai muncul out of memory tidak
dapat dipastikan karena tergantung jumlah kolom dan tipe data setiap kolom.
> Kalau copy suatu range, bisa diketahui luasannya bukan ? Kalau kira-kira
sangat luas dan banyak berisi data (termasuk formula), berarti ada potensi
akan out of memory jika dilakukan berulang-ulang.
2. Khusus untuk kegiatan Copy suatu range, segera beri baris
application.cutcopymode=false begitu proses selesai.
> misal copy range A1:Z99999 lalu di paste values ke range BB1, maka karena
dikuatirkan bisa menyebabkan out of memory, maka setelah proses paste
values diberi baris application.cutcopymode=false
**** disetiap proses copy lalu paste ? >>> TIDAK, hanya di copy lalu paste
yang memproses range yang luas dan dikuatirkan out of memory
**** kalau ada 1000 proses copy paste dan semuanya dikuatirkan out of
memory gimana ? >>>> tambahkan baris application.cutcopymode=false di
setiap proses (berarti ada 1000 baris application.cutcopymode=false)
<simpel kan>
Pertanyaan 3 :
Tutup workbook-nya saja
Wassalamu'alaikum wr wb
Kid
2016-11-23 9:44 GMT+07:00 Tio Adi Bayu Adjie [email protected]
[belajar-excel] <[email protected]>:
>
>
> Assalamu alaikum.
>
> Lama tak jumpa dengan Master Excel (Mr.Kid dan teman-teman).
>
> Mau tanya nih.
>
> Saya buat program dengan vba excel tapi setelah di execute, terjadi out of
> memory.
>
> Pertanyaannya :
>
> 1. Apa saja yang menyebabkan out of memory ?
>
> 2. Bagaimana mendeteksi suatu coding yang menyebabkan out memory ?
>
> 3. Bagaimana merelease memory untuk semua coding saya tanpa perlu
> release memory satu persatu coding vba saya ?
>
>
>
> Terima Kasih atas bantuannya.
>
> Hanya Allah SWT yang membalas kebaikan Mr. Kid dan teman-teman semua.
>
>
>
> Wassalam.
>
> Tio
>
>
>
>
>
> .
>
>
>
>