Arrays muVisual Basic for Application

Arrays in Visual Basic for Application zvimiro zvinowanzo chengeta seti dzemhando dzakasiyana dzemhando imwechete. Array entries inowanikwa nenhamba yavo index.

Semuenzaniso, kune boka revanhu makumi maviri vane mazita anoda kuchengetwa kuti ashandiswe gare gare muVBA code. Mumwe anogona kungotaura 20 akasiyana-siyana kubata zita rega rega, sekudaro:

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

Asi iwe unogona kushandisa yakareruka uye yakarongeka nzira - chengetedza runyorwa rwemazita enhengo dzechikwata muhurongwa hwemakumi maviri akasiyana. tambo:

Dim Team_Members(1 kusvika 20) Setambo

Mumutsara waratidzwa pamusoro, takazivisa hurongwa. Zvino ngatinyore kukosha kune chimwe nechimwe chezvinhu zvayo, seizvi:

Team_Members(1) = "John Smith"

Imwezve mukana wekuchengeta data muhurongwa, uchienzaniswa nekushandisa akasiyana siyana, inobuda pachena kana zvave madikanwa kuita chiito chimwechete pane chimwe nechimwe chechikamu. Kana mazita enhengo dzechikwata akachengetwa muzvikamu makumi maviri zvakasiyana, zvino zvaizotora mitsara makumi maviri yekodhi kunyora nguva imwe neimwe kuita chiito chimwechete pane chimwe nechimwe chazvo. Nekudaro, kana iwo mazita akachengetwa mune array, saka iwe unogona kuita chinodiwa chiito nemumwe nemumwe wavo uchishandisa nyore loop.

Mashandiro aanoita anoratidzwa pazasi nekodhi muenzaniso inodhinda mazita enhengo yechikwata chega-chega zvakatevedzana mumaseru. A inoshanda Excel worksheet.

For i = 1 Kusvika 20 Masero(i,1).Kukosha = Team_Members(i) Next i

Zviripachena, kushanda nehurongwa hunochengeta mazita makumi maviri hakuna kunyanya kunetsa uye kwakaringana pane kushandisa makumi maviri akasiyana akasiyana. Asi zvakadini kana mazita aya asiri makumi maviri, asi 20? Uye kana, mukuwedzera, zvinodikanwa kuchengeta surnames uye patronymics zvakasiyana?! Zviri pachena kuti zvichakurumidza kuve zvisingagoneke zvachose kubata vhoriyamu yedata muVBA kodhi pasina rubatsiro rwemhando.

Multidimensional arrays muExcel Visual Basic

Iyo Visual Basic arrays yakakurukurwa pamusoro inoonekwa seimwe-dimensional. Izvi zvinoreva kuti vanochengeta runyoro rwemazita. Zvisinei, mitsara inogona kuva nemativi akawanda. Semuenzaniso, maviri-dimensional array anogona kufananidzwa negridi yezvinokosha.

Ngatiti iwe unoda kuchengetedza nhamba dzemazuva ese dzekutengesa dzaNdira dzezvikwata zvishanu zvakasiyana. Izvi zvinoda maviri-dimensional array anosanganisira mashanu seti yemametrics kwemazuva makumi matatu nerimwe. Ngatizivise hurongwa hwakadai:

Dim Jan_Sales_Figures(1 kusvika 31, 1 kusvika 5) Semari

Kuwana array elements Jan_Sales_Figures, unofanirwa kushandisa ma indexes maviri anoratidza zuva remwedzi uye nhamba yekuraira. Semuenzaniso, kero yechinhu chine manhamba ekutengesa kwe 2-o zvikwata zve 15th January aizonyorwa seizvi:

Jan_Sales_Figures(15, 2)

Nenzira imwecheteyo, iwe unogona kuzivisa rondedzero ine 3 kana zvimwe zviyero - ingo wedzera mamwe mativi kune array declaration uye shandisa mamwe ma indices kutaura kune zvinhu zveiyi rondedzero.

Kuzivisa Arrays muExcel Visual Basic

Pakutanga muchinyorwa chino, takatotarisa mienzaniso yakati wandei yekuzivisa arrays muVBA, asi nyaya iyi inofanirwa kunyatsotariswa. Sezvinoratidzwa, imwe-dimensional array inogona kuziviswa seizvi:

Dim Team_Members(1 kusvika 20) Setambo

Chiziviso chakadaro chinoudza VBA compiler kuti array Team_Members ine zvikamu makumi maviri zvinokwanisa kuwanikwa pamaindices kubva pa20 kusvika pa1. Zvisineyi, tinogona kufunga nezvekuisa manhamba kubva pa20 kusvika pa0, apa ndipo panofanira kuziviswa sezvizvi:

Dim Team_Members(0 kusvika 19) Setambo

Muchokwadi, nekusarudzika, kuverengerwa kwezvinhu zvakarongwa kunotanga kubva pa0, uye muhurongwa hwekuzivisa, index yekutanga inogona kunge isina kutsanangurwa zvachose, seizvi:

Dim Team_Members(19) SeTring

Iyo VBA compiler inobata yekupinda yakadai sekuzivisa rondedzero yezvinhu makumi maviri ine indices kubva 20 kusvika 0.

Mitemo mimwecheteyo inoshanda kana uchizivisa multidimensional Visual Basic arrays. Sezvakatoratidzwa mune mumwe wemienzaniso, kana uchizivisa mativi maviri-maviri, indices yezviyero zvayo inoparadzaniswa necomma:

Dim Jan_Sales_Figures(1 kusvika 31, 1 kusvika 5) Semari

Nekudaro, kana iwe ukasatsanangudza yekutanga indekisi yezviyero zviviri zveiyo array uye itaure seizvi:

Dim Jan_Sales_Figures(31, 5) Semari

zvino chinongedzo ichi chinozobatwa semaviri-dimensional array, yekutanga dimension ine zvinhu makumi matatu nembiri zvine indices kubva pa32 kusvika pa0, uye chechipiri dimension yehurongwa ine zvinhu zvitanhatu zvine indices kubva pa31 kusvika 6.

Dynamic arrays

Mitsetse yese mumienzaniso iri pamusoro ine nhamba yakatarwa yezviyero. Zvisinei, muzviitiko zvakawanda hatizivi pachine nguva kuti gadziriro yedu inofanira kuva saizi yakadini. Tinogona kubuda mumamiriro ezvinhu nokuzivisa nhevedzano huru, ukuru hwayo zvamazvirokwazvo huchava hombe kupfuura madikanwa nokuda kwebasa redu. Asi mhinduro yakadaro inoda kuwanda kwekuyeuka uye inogona kuderedza purogiramu. Pane mhinduro iri nani. Isu tinogona kushandisa dhizaini dhizaini - iyi dhizaini ine saizi inogona kusetwa uye kuchinjwa chero nhamba yenguva panguva yekuitwa kwema macro.

A dynamic array inoziviswa ine maparentheses asina chinhu, seizvi:

Dim Team_Members() Se String

Tevere, iwe unozofanirwa kuzivisa chiyero cheiyo array panguva yekuita kodhi uchishandisa chirevo ReDim:

ReDim Team_Members(1 kusvika 20)

Uye kana panguva yekuitwa kwekodhi iwe unofanirwa kushandura saizi yeiyo array zvakare, saka unogona kushandisa iyo ReDim kutaura zvakare:

Kana Team_Size> 20 Zvadaro ReDim Team_Members(1 kusvika Team_Size) Kupera Kana

Ramba uchifunga kuti kudzoreredza dhizaini dhizaini nenzira iyi kunozokonzera kurasikirwa kwezvese kukosha kwakachengetwa muhurongwa. Kuti uchengetedze data yatove muhurongwa, unofanirwa kushandisa izwi rakakosha Chengetasezvinoratidzwa pasi apa:

Kana Team_Size> 20 Wobva waReDim Chengetedza Team_Members(1 kusvika Team_Size) Kupera Kana

Sezvineiwo keyword Chengeta inogona kushandiswa chete kushandura muganhu wepamusoro we array dimension. Iyo yakaderera boundary yearray haigone kuchinjwa nenzira iyi. Zvakare, kana dhizaini iine mativi akawanda, wobva washandisa iro keyword Chengeta, chikamu chekupedzisira chega chega chinogona kudzokororwa.

Leave a Reply