Hai Shenly,
*Tentang :*
> ada satu argumen yg susah untuk di masukn ke coding tersebut, seperti :
>
> Sheets("Form").Select
> Rows("23:1500").Select
> Selection.Delete Shift:=xlUp
> Lebih baik :
> Sheets("form").range("a23:a1500").entirerow.delete xlshiftup
>
> Rows("23:1500") tidak bisa ganti menjadi range("a23:a1500")
>
> Kalau mau delete seluruh baris, bisa dengan :
Sheets("form")*.rows("23:1500")*.delete xlshiftup
atau
Sheets("form")*.range("a23:a1500").entirerow*.delete xlshiftup
yang di-*bold* itu sama bendanya, jadi pasti kalau salah satu baris kode
bisa bekerja, maka baris kode yang satunya lagi juga bisa bekerja.
Dua baris kode di atas lebih baik dibanding :
Sheets("Form").Select
Rows("23:1500").Select
Selection.Delete Shift:=xlUp
Penggunaan *.range("a23:a1500").entirerow* bisa lebih fleksibel.
Contoh, ada range tabel yang diketahui header di A22 terus mau delete
seluruh area record-nya (header tetap utuh).
Bagaimana membuatnya menjadi *.Rows("blabla:blublu")* ?
Lebih mudah dengan *.range("a21").currentregion.offset(1).entirerow*
Jadi, penggunaan object range lebih luwes dibanding object rows.
*Tentang :*
> karena saya menggunakan "Table"
>
> mungkin maksudnya object Excel Table ya...
*Tentang :*
> jadi ketika saya menggunakan range("a23:a1500") , otomatis excel tidak
> bisa mendelet, karena "Tabel" dan cell yg bukan termasuk kedalam tabel ikut
> ke range
>
> Ada sebuah Excel table (misal sampai baris Excel 300
> Yang ini : (sebut saja cara 1)
Sheets("Form").Select
Rows("23:1500").Select
Selection.Delete Shift:=xlUp
lebih buruk dari yang ini : (sebut saja cara 2)
Sheets("form")*.rows("23:1500")*.delete xlshiftup
> nah... yang ini : (yaitu cara 2)
Sheets("form")*.rows("23:1500")*.delete xlshiftup
lebih kaku dibanding yang ini : (sebut saja cara 3)
Sheets("form")*.range("a23:a1500").entirerow*.delete xlshiftup
> jadi, Cara 1 lebih baik ditinggalkan, pilihlah cara 2, tapi nanggung
banget kalau pakai cara 2, jadi sekalian pakai cara 3 sajah...
> Ketika bekerja dengan Object Excel Table, misal saja nama Excel Table-nya
adalah 'tblKid', dengan header mulai di A22 (artinya record pertama mulai
di A23)
untuk mengosongkan Excel Table bernama 'tblKid' tersebut bisa dengan
salah satu cara berikut :
sheets("form").range("tblKid").delete xlshiftup
atau
sheets("form").range("a23").currentregion.delete xlshiftup
atau
sheets("form").range("data").entirerow.delete xlshiftup 'yang
cara ini terlalu berlebihan, karena sebenarnya tidak perlu delete seluruh
baris Excel
atau
sheets("form").range("a23").currentregion.entirerow.delete
xlshiftup'jadi kelihatan bagian yang berlebihannya bukan ?
*** katanya : banyak jalan menuju roma
> Kalau delete area records dari object Excel Table, perlu mewaspadai
kondisi Excel Table yang sudah kosong
Misal, Excel Table bernama 'tblKid' dalam keadaan kosong,
maka *cara delete berikut ini SEMUANYA akan error* :
Sheets("Form").Select
Rows("23:1500").Select
Selection.Delete Shift:=xlUp
atau
Sheets("form")*.rows("23:1500")*.delete xlshiftup
atau
Sheets("form")*.range("a23:a1500").entirerow*.delete xlshiftup
atau
sheets("form").range("tblKid").delete xlshiftup
atau
sheets("form").range("a23").currentregion.delete xlshiftup
> Trus gimana dong ?
Kalau mau mengosongkan, isi saja dulu record pertama kolom pertama
dengan suatu nilai, baru di-delete, seperti :
sheets("form").range("a23").value=0
sheets("form").range("tblKid").delete xlshiftup
> Jadi, saya beneran gak mudeng dengan kalimat ini : 'otomatis excel tidak
bisa mendelet'
kalau Rows("23:1500") diganti langsung dengan bunyi Range("a23:a1500")
tanpa diberi .entirerow, ya jelas gak bisa, karena dua barang itu berbeda.
kalau Rows("23:1500") diganti dengan bunyi
Range("a23:a1500").entirerow pasti bisa kalau salah satunya bisa, karena
dua barang itu adalah sama.
*Tentang :*
> dikarenakan jumlah table bisa berubah-ubah, jadi sya kuci sampai rows
> 1500, karena data yg akan di input dalam "Table" ini tidak akan melebihi
> sampai row 1500
>
> Sila diatur sajah...
> Tapi
dengan :
sheets("form").range("tblKid").delete xlshiftup
atau
sheets("form").range("a23").currentregion.delete xlshiftup
sepertinya bisa ndak perlu repot-repot ngunci jumlah baris deh...
biarkan saja si user menggunakan baris Excel sesukanya...
toh sudah diikat dalam satu object Excel table bukan ?
> tapi ini cuma pendapat saya saja loh, karena saya males banget ngurusin
bates-batesan... emoh repot..
dengan gak pakai bates-batesan baris, malah justru bisa kelihatan kaya
expert kan, user boleh sesukanya, script yang ada akan membereskannya...
wakakaka...
padahal script nya malah lebih sederhana dan gak usah banyak mikir dan
tidak bisa mewakili ke-expert-an
;)
*Tentang :*
> dan sebagai penjelasan tambahan.