Arrays amin'ny Visual Basic for Application

Arrays ao amin'ny Visual Basic for Application dia rafitra izay matetika mitahiry andiana fari-pahalalana mifandraika amin'ny karazana mitovy. Idirana amin'ny fanondroan'ny isany ny fidirana amin'ny laharan-kira.

Ohatra, misy ekipa misy olona 20 izay mila tehirizina ny anarany mba hampiasaina amin'ny code VBA any aoriana. Ny iray dia afaka manambara 20 variables mba hitazonana anarana tsirairay, toy izao:

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

Saingy azonao atao ny mampiasa fomba tsotra kokoa sy voalamina kokoa - mitahiry lisitry ny anaran'ny mpikambana ao amin'ny ekipa amin'ny filaharana 20 miovaova toy ny String:

Dim Team_Members(1 à 20) As String

Ao amin'ny tsipika aseho etsy ambony, dia nanambara array izahay. Andeha isika hanoratra sanda ho an'ny singa tsirairay ao aminy, toy izao:

Team_Members(1) = "John Smith"

Tombontsoa fanampiny amin'ny fitehirizana angon-drakitra ao anaty laharan-kira, raha ampitahaina amin'ny fampiasana varimbazaha misaraka, dia miharihary rehefa ilaina ny manao hetsika mitovy amin'ny singa tsirairay amin'ny laharan-tariby. Raha voatahiry ao anaty faribolana 20 misaraka ny anaran'ireo mpikambana ao amin'ny ekipa, dia mila andalana 20 kaody ny fanoratana isaky ny manao hetsika mitovy amin'ny tsirairay amin'izy ireo. Na izany aza, raha voatahiry ao anaty array ny anarana, dia azonao atao ny manatanteraka ny hetsika irina miaraka amin'ny tsirairay amin'izy ireo amin'ny alàlan'ny loop tsotra.

Ny fomba fiasan'izy io dia aseho etsy ambany miaraka amin'ny ohatra kaody izay manonta ny anaran'ny mpikambana tsirairay ao amin'ny ekipa misesy ao amin'ny sela tsanganana. A asa Excel mavitrika.

Ho an'ny i = 1 hatramin'ny 20 sela(i,1). Sanda = Mpikambana_Ekipa(i) Manaraka i

Mazava ho azy, ny miasa miaraka amin'ny array izay mitahiry anarana 20 dia tsy dia sarotra loatra ary marina kokoa noho ny fampiasana fari-pitsipika 20 misaraka. Ahoana anefa raha tsy 20 ireo anarana ireo, fa 1000? Ary raha, ankoatra izany, dia ilaina ny mitazona ny anaram-pianakaviana sy ny patronymics misaraka?! Mazava fa tsy ho ela dia tsy ho vita mihitsy ny mitantana angon-drakitra toy izany amin'ny code VBA raha tsy misy ny fanampian'ny array.

Array multidimensional ao amin'ny Excel Visual Basic

Ny laharan'ny Visual Basic resahina etsy ambony dia heverina ho iray dimensional. Midika izany fa mitahiry lisitra anarana tsotra izy ireo. Na izany aza, ny array dia mety manana refy maromaro. Ohatra, azo ampitahaina amin'ny tady misy soatoavina ny laharan-droa dimanjato.

Andao atao hoe te-hitahiry ny isan'ny varotra isan'andro amin'ny volana Janoary ho an'ny ekipa 5 samihafa ianao. Mitaky laharan-droa miendrika mametrika miisa 5 mandritra ny 31 andro izany. Andao hanambara array toy izao:

Dim Jan_Sales_Figures(1 hatramin'ny 31, 1 hatramin'ny 5) ho vola

Mba hidirana amin'ny singa array Jan_Sales_Figures, mila mampiasa tondro roa ianao manondro ny andro amin'ny volana sy ny laharana baiko. Ohatra, ny adiresin'ny singa iray misy tarehimarika momba ny varotra 2-oh ekipa ho an'ny 15 ny Janoary dia ho voasoratra toy izao:

Jan_Sales_Figures(15, 2)

Toy izany koa, azonao atao ny manambara array misy refy 3 na mihoatra - ampio refy fanampiny amin'ny fanambarana array ary ampiasao indices fanampiny hanondroana ireo singa amin'ity array ity.

Manambara Array ao amin'ny Excel Visual Basic

Tany am-piandohan'ity lahatsoratra ity dia efa nijery ohatra maromaro momba ny fanambarana arrays ao amin'ny VBA isika, saingy mendrika hojerena akaiky ity lohahevitra ity. Araka ny aseho, dia azo ambara toy izao ny array iray dimensional:

Dim Team_Members(1 à 20) As String

Ny fanambarana toy izany dia milaza amin'ny VBA compiler fa ny array Ekipa_mpikambana misy fari-pitsipika 20 azo idirana amin'ny indices manomboka amin'ny 1 ka hatramin'ny 20. Na izany aza, mety hieritreritra ny hanisa ny fari-piadidiantsika avy amin'ny 0 ka hatramin'ny 19 isika, ka amin'izay dia tokony hambara toy izao ny array:

Dim Team_Members(0 à 19) As String

Raha ny marina, amin'ny alàlan'ny default, manomboka amin'ny 0 ny fanisana ny singa array, ary amin'ny fanambarana array dia mety tsy voafaritra mihitsy ny index voalohany, toy izao:

Dim Team_Members(19) As String

Ny mpamoron-kira VBA dia handray an-tsoratra toy ny filazana ny andiana singa 20 miaraka amin'ny indices manomboka amin'ny 0 ka hatramin'ny 19.

Mihatra ihany koa ireo fitsipika ireo rehefa manambara ny array Visual Basic multidimensional. Araka ny efa naseho tao amin'ny iray amin'ireo ohatra, rehefa manambara laharan-droa dimanjato, dia sarahan'ny faingo ny tondron'ny refy:

Dim Jan_Sales_Figures(1 hatramin'ny 31, 1 hatramin'ny 5) ho vola

Na izany aza, raha tsy mamaritra index fanombohana ho an'ny refy roa amin'ny array ianao ary manambara izany toy izao:

Dim Jan_Sales_Figures(31, 5) ho vola

Avy eo ity fidirana ity dia ho raisina ho toy ny laharan-tariby roa, ny refy voalohany misy singa 32 miaraka amin'ny indices manomboka amin'ny 0 ka hatramin'ny 31, ary ny refy faharoa amin'ny array dia misy singa 6 misy indices manomboka amin'ny 0 ka hatramin'ny 5.

Fandaharana mavitrika

Ny array rehetra amin'ireo ohatra etsy ambony ireo dia manana refy voafaritra. Na izany aza, amin'ny tranga maro dia tsy fantatsika mialoha ny haben'ny array misy antsika. Afaka miala amin'ny toe-javatra isika amin'ny alàlan'ny fanambarana andiana goavambe, ny haben'izy ireo dia azo antoka fa lehibe kokoa noho ny ilaina amin'ny asantsika. Fa ny vahaolana toy izany dia mitaky fitadidiana fanampiny be dia be ary afaka mampiadana ny fandaharana. Misy vahaolana tsara kokoa. Afaka mampiasa array dynamique isika - array izay azo apetraka sy ovaina imbetsaka ny habeny mandritra ny fanatanterahana macro.

Ny array dynamic dia ambara miaraka amin'ny fononteny foana, toy izao:

Dim Team_Members() As String

Manaraka, mila manambara ny haben'ny array ianao mandritra ny famonoana kaody amin'ny fampiasana ny fitenenana ReDim:

ReDim Team_Members(1 hatramin'ny 20)

Ary raha mila manova ny haben'ny array ianao mandritra ny fanatanterahana ny code, dia azonao ampiasaina indray ny fanehoana ReDim:

Raha Team_Size > 20 dia Avereno indray ny Team_Members(1 ho Team_Size) Raha

Ataovy ao an-tsaina fa ny fanovana ny laharan-tariby mavitrika amin'izany fomba izany dia hiteraka fahaverezan'ny soatoavina rehetra voatahiry ao anaty laharan-tariby. Mba hitehirizana ny angona efa ao amin'ny array dia mila mampiasa ny teny fanalahidy ianao Arovyaraka ny aseho eto ambany:

Raha Team_Size > 20 Dia ReDim Tehirizo Team_Members(1 ho Team_Size) Tapitra raha

Indrisy ny teny fototra Arovy tsy azo ampiasaina hanovana ny fetra ambony amin'ny refin'ny array. Tsy azo ovaina amin'izany fomba izany ny fetra ambany amin'ny array. Ary koa, raha manana refy maromaro ny array, dia ampiasao ny teny fanalahidy Arovy, ny refy farany amin'ny andry ihany no azo ovaina.

Leave a Reply