Array ing Visual Basic kanggo Aplikasi

Array ing Visual Basic for Application minangka struktur sing biasane nyimpen set variabel sing gegandhengan saka jinis sing padha. Entri array diakses kanthi indeks numerik.

Contone, ana tim 20 wong sing jenenge kudu disimpen kanggo digunakake ing kode VBA. Siji mung bisa ngumumake 20 variabel kanggo nyekel saben jeneng, kayata:

Dim Team_Member1 As String Dim Team_Member2 As String ... Dim Team_Member20 As String

Nanging sampeyan bisa nggunakake cara sing luwih gampang lan luwih teratur - nyimpen dhaptar jeneng anggota tim ing macem-macem 20 variabel kaya String:

Dim Team_Members(1 Kanggo 20) Minangka String

Ing baris sing ditampilake ing ndhuwur, kita wis ngumumake array. Saiki ayo nulis nilai kanggo saben unsur, kaya mangkene:

Anggota_Tim(1) = "John Smith"

Kauntungan tambahan kanggo nyimpen data ing array, dibandhingake karo nggunakake variabel sing kapisah, katon nalika perlu kanggo nindakake tumindak sing padha ing saben unsur array. Yen jeneng anggota tim disimpen ing 20 variabel sing kapisah, mula butuh 20 baris kode kanggo nulis saben wektu kanggo nindakake tumindak sing padha ing saben wong. Nanging, yen jeneng disimpen ing larik, sampeyan bisa nindakake tumindak sing dipengini karo saben wong nggunakake daur ulang prasaja.

Cara kerjane dituduhake ing ngisor iki kanthi conto kode sing nyithak jeneng saben anggota tim kanthi urutan ing sel kolom. A lembar kerja Excel aktif.

Kanggo i = 1 nganti 20 Sel(i,1).Nilai = Anggota_Tim(i) Sabanjure i

Temenan, nggarap array sing nyimpen 20 jeneng luwih angel lan luwih akurat tinimbang nggunakake 20 variabel sing kapisah. Nanging apa yen jeneng iki ora 20, nanging 1000? Lan yen, saliyane, kudu njaga jeneng kulawarga lan patronymics kanthi kapisah?! Cetha yen bakal rauh dadi mokal kanggo nangani volume data kasebut ing kode VBA tanpa bantuan array.

Array multidimensi ing Excel Visual Basic

Array Visual Basic sing dibahas ing ndhuwur dianggep minangka siji-dimensi. Iki tegese padha nyimpen dhaftar prasaja jeneng. Nanging, array bisa duwe macem-macem dimensi. Contone, array rong dimensi bisa dibandhingake karo kothak nilai.

Contone, sampeyan pengin nyimpen angka dodolan saben dina kanggo Januari kanggo 5 tim sing beda. Iki mbutuhake array rong dimensi sing dumadi saka 5 set metrik sajrone 31 dina. Ayo ngumumake array kaya iki:

Dim Jan_Sales_Figures(1 kanggo 31, 1 kanggo 5) Minangka Currency

Kanggo ngakses unsur array Jan_Sales_Angka, sampeyan kudu nggunakake rong indeks sing nuduhake dina sasi lan nomer printah. Contone, alamat unsur ngemot angka dodolan kanggo 2-oh tim kanggo 15 th Januari bakal ditulis kaya iki:

Jan_Sales_Angka(15, 2)

Kanthi cara sing padha, sampeyan bisa ngumumake array kanthi 3 utawa luwih dimensi - mung nambah dimensi tambahan menyang deklarasi array lan nggunakake indeks tambahan kanggo ngrujuk menyang unsur array iki.

Deklarasi Arrays ing Excel Visual Basic

Sadurungé ing artikel iki, kita wis katon ing sawetara conto deklarasi array ing VBA, nanging topik iki pantes dipikir nyedhaki. Minangka ditampilake, array siji-dimensi bisa diumumake kaya mangkene:

Dim Team_Members(1 Kanggo 20) Minangka String

Pranyatan kuwi ngandhani VBA compiler sing Uploaded Team_Anggota kasusun saka 20 variabel sing bisa diakses ing indeks saka 1 nganti 20. Nanging, kita bisa uga mikir babagan nomer variabel array saka 0 nganti 19, lan yen array kudu diumumake kaya iki:

Dim Team_Members(0 Kanggo 19) Minangka String

Nyatane, kanthi standar, penomoran unsur array diwiwiti saka 0, lan ing deklarasi array, indeks awal bisa uga ora ditemtokake, kaya iki:

Dim Team_Members(19) Minangka String

Kompiler VBA bakal nganggep entri kasebut minangka nyatakake susunan 20 unsur kanthi indeks saka 0 nganti 19.

Aturan sing padha ditrapake nalika ngumumake array Visual Basic multidimensi. Kaya sing wis ditampilake ing salah sawijining conto, nalika ngumumake array rong dimensi, indeks dimensi kasebut dipisahake karo koma:

Dim Jan_Sales_Figures(1 kanggo 31, 1 kanggo 5) Minangka Currency

Nanging, yen sampeyan ora nemtokake indeks wiwitan kanggo loro dimensi array lan nyatakake kaya iki:

Dim Jan_Sales_Figures(31, 5) Minangka Mata uang

banjur entri iki bakal dianggep minangka array rong dimensi, dimensi pisanan ngemot 32 unsur kanthi indeks saka 0 nganti 31, lan dimensi nomer loro saka array ngemot 6 unsur kanthi indeks saka 0 nganti 5.

Susunan dinamis

Kabeh larik ing conto ndhuwur duwe nomer tetep dimensi. Nanging, ing pirang-pirang kasus, kita ora ngerti sadurunge ukuran array kita. Kita bisa metu saka kahanan kasebut kanthi nyatakake array sing gedhe, ukurane mesthi luwih gedhe tinimbang sing dibutuhake kanggo tugas kita. Nanging solusi kuwi mbutuhake akeh memori ekstra lan bisa alon mudhun program. Ana solusi sing luwih apik. Kita bisa nggunakake array dinamis - iki array sing ukurane bisa disetel lan diganti kaping pirang-pirang sajrone eksekusi makro.

Array dinamis diumumake nganggo tanda kurung kosong, kaya mangkene:

Dim Team_Members() Minangka String

Sabanjure, sampeyan kudu ngumumake dimensi array sajrone eksekusi kode nggunakake ekspresi kasebut ReDim:

Anggota Tim ReDim(1 nganti 20)

Lan yen sajrone eksekusi kode sampeyan kudu ngganti ukuran array maneh, sampeyan bisa nggunakake ekspresi ReDim maneh:

Yen Team_Size > 20 Banjur ReDim Team_Members (1 Kanggo Team_Size) Mungkasi Yen

Elinga yen ngowahi ukuran array dinamis kanthi cara iki bakal nyebabake ilang kabeh nilai sing disimpen ing array. Kanggo nyimpen data sing wis ana ing array, sampeyan kudu nggunakake tembung kunci Ngreksaminangka ditampilake ing ngisor iki:

Yen Team_Size > 20 Banjur ReDim Simpen Team_Members (1 Kanggo Team_Size) Mungkasi Yen

Sayange tembung kunci Ngreksa mung bisa digunakake kanggo ngganti wates ndhuwur ukuran Uploaded. Watesan ngisor array ora bisa diganti kanthi cara iki. Uga, yen larik duwe pirang-pirang dimensi, banjur gunakake tembung kunci Ngreksa, mung ukuran pungkasan array sing bisa diowahi ukurane.

Ninggalake a Reply