Arrays ann an Visual Basic airson Iarrtas

Tha arrays ann an Visual Basic airson Iarrtas nan structaran a bhios mar as trice a’ stòradh sheataichean de chaochladairean co-cheangailte den aon sheòrsa. Gheibhear inntrigeadh array leis a’ chlàr àireamhach aca.

Mar eisimpleir, tha sgioba de 20 neach ann agus feumar na h-ainmean aca a shàbhaladh airson an cleachdadh nas fhaide air adhart ann an còd VBA. Dh’ fhaodadh neach dìreach 20 caochladair ainmeachadh airson gach ainm a chumail, mar sin:

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

Ach faodaidh tu dòigh tòrr nas sìmplidh agus nas eagraichte a chleachdadh - stòraich liosta de dh’ ainmean buill sgioba ann an sreath de 20 caochladairean mar String:

Dim Team_Members (1 gu 20) Mar sreang

Anns an loidhne gu h-àrd, tha sinn air sreath ainmeachadh. A-nis sgrìobhamaid luach airson gach aon de na h-eileamaidean aige, mar seo:

Team_Members(1) = "Iain Mac a' Ghobhainn"

Bidh buannachd a bharrachd ann a bhith a’ stòradh dàta ann an sreath, an taca ri bhith a’ cleachdadh caochladairean fa leth, ri fhaicinn nuair a dh’ fheumar an aon rud a dhèanamh air gach eileamaid den raon. Nam biodh ainmean buill na sgioba air an stòradh ann an 20 caochladairean fa leth, bheireadh e 20 loidhne de chòd airson sgrìobhadh gach turas gus an aon rud a dhèanamh air gach fear dhiubh. Ach, ma tha na h-ainmean air an stòradh ann an sreath, faodaidh tu an gnìomh a tha thu ag iarraidh a dhèanamh le gach fear dhiubh a 'cleachdadh lùb sìmplidh.

Tha mar a tha e ag obair air a shealltainn gu h-ìosal le eisimpleir còd a bhios a’ clò-bhualadh ainmean gach ball den sgioba ann an sreath anns na ceallan colbh. A duilleag-obrach Excel gnìomhach.

Airson i = 1 Gu 20 cealla(i,1).Value = Sgioba_Members(i) Air adhart i

Gu follaiseach, tha a bhith ag obair le sreath a bhios a’ stòradh 20 ainm mòran nas duilghe agus nas cruinne na bhith a’ cleachdadh 20 caochladair fa leth. Ach dè mura h-eil na h-ainmean sin 20, ach 1000? Agus ma tha, a bharrachd air sin, feumar na sloinnidhean agus na sloinnidhean a chumail air leth?! Tha e soilleir gum bi e gu tur eu-comasach a bhith a’ làimhseachadh leithid de dhàta ann an còd VBA gun chuideachadh bho raon.

Arrays ioma-thaobhach ann an Excel Visual Basic

Thathas den bheachd gu bheil na h-arrays Visual Basic a chaidh a dheasbad gu h-àrd aon-thaobhach. Tha seo a 'ciallachadh gu bheil iad a' stòradh liosta ainmean sìmplidh. Ach, faodaidh grunn mheudan a bhith aig arrays. Mar eisimpleir, faodar sreath dà-thaobhach a choimeas ri cliath luachan.

Canaidh sinn gu bheil thu airson na figearan reic làitheil airson Faoilleach a shàbhaladh airson 5 sgiobaidhean eadar-dhealaichte. Feumaidh seo sreath dà-thaobhach anns a bheil 5 seataichean de mheatairean airson 31 latha. Cuiridh sinn an cèill sreath mar seo:

Dim Jan_Sales_Figures(1 Gu 31, 1 Gu 5) Mar Airgeadra

Gus faighinn gu eileamaidean array Jan_Sales_Figearan, feumaidh tu dà chlàr-amais a chleachdadh a’ comharrachadh latha na mìos agus an àireamh àithne. Mar eisimpleir, seòladh eileamaid anns a bheil figearan reic airson 2-ach sgiobaidhean airson 15 mh Bhiodh am Faoilleach air a sgrìobhadh mar seo:

Jan_Sales_Figear(15, 2)

San aon dòigh, faodaidh tu sreath fhoillseachadh le 3 no barrachd tomhasan - dìreach cuir tomhasan a bharrachd ris an dearbhadh raon agus cleachd clàran-amais a bharrachd gus iomradh a thoirt air na h-eileamaidean den raon seo.

Ag ainmeachadh Arrays ann an Excel Visual Basic

Na bu thràithe san artaigil seo, choimhead sinn mu thràth air grunn eisimpleirean de bhith ag ainmeachadh arrays ann an VBA, ach tha an cuspair seo airidh air sùil nas mionaidiche. Mar a chithear, faodar sreath aon-thaobhach ainmeachadh mar seo:

Dim Team_Members (1 gu 20) Mar sreang

Tha an leithid de dhearbhadh ag innse don neach-cruinneachaidh VBA gu bheil an t-sreath Sgioba_Ball air a dhèanamh suas de 20 caochladairean a gheibhear thuige aig clàran-amais bho 1 gu 20. Ach, dh’ fhaodadh sinn smaoineachadh air ar caochladairean rèite àireamhachadh bho 0 gu 19, agus sa chùis seo bu chòir an t-sreath a bhith air ainmeachadh mar seo:

Dim Team_Members (0 gu 19) Mar sreang

Gu dearbh, gu gnàthach, bidh àireamh nan eileamaidean rèite a’ tòiseachadh bho 0, agus anns an dearbhadh rèite, is dòcha nach bi a’ chiad chlàr-amais air a shònrachadh idir, mar seo:

Dim Team_Members(19) Mar sreang

Bidh an compiler VBA a’ dèiligeadh ri leithid de dh’ inntrigeadh le bhith ag ainmeachadh sreath de 20 eileamaid le clàran-amais bho 0 gu 19.

Tha na h-aon riaghailtean a’ buntainn nuair a thathar a’ cur an cèill arrays ioma-thaobhach Visual Basic. Mar a chithear mar-thà ann an aon de na h-eisimpleirean, nuair a thathar ag ainmeachadh sreath dà-thaobhach, tha clàran-amais a tomhasan air an sgaradh le cromag:

Dim Jan_Sales_Figures(1 Gu 31, 1 Gu 5) Mar Airgeadra

Ach, mura sònraich thu clàr-amais tòiseachaidh airson an dà mheud den raon agus cuir an cèill e mar seo:

Dim Jan_Sales_Figures(31, 5) Mar airgead

an uairsin thèid an inntrigeadh seo a làimhseachadh mar raon dà-thaobhach, anns a’ chiad tomhas anns a bheil 32 eileamaidean le clàran-amais bho 0 gu 31, agus anns an dàrna taobh den raon tha 6 eileamaidean le clàran-amais bho 0 gu 5.

Arrays dinamic

Tha àireamh shuidhichte de mheudan aig a h-uile sreath anns na h-eisimpleirean gu h-àrd. Ach, ann an iomadh cùis chan eil fios againn ro-làimh dè am meud a bu chòir a bhith anns an raon againn. Faodaidh sinn faighinn a-mach às an t-suidheachadh le bhith ag ainmeachadh raon mòr, agus bidh am meud gu cinnteach nas motha na tha riatanach airson ar gnìomh. Ach feumaidh fuasgladh mar seo tòrr cuimhne a bharrachd agus faodaidh e am prògram a dhèanamh nas slaodaiche. Tha fuasgladh nas fheàrr ann. Is urrainn dhuinn raon fiùghantach a chleachdadh - is e seo raon a dh’ fhaodar a mheud a shuidheachadh agus atharrachadh grunn thursan nuair a thèid macro a chuir gu bàs.

Tha sreath fiùghantach air ainmeachadh le bragan falamh, mar seo:

Dim Team_Members() Mar sreang

An ath rud, feumaidh tu meud an t-sreath ainmeachadh nuair a thèid còd a chuir gu bàs a ’cleachdadh an abairt ReDim:

Sgioba ReDim_Members(1 gu 20)

Agus ma dh'fheumas tu meud an t-sreath atharrachadh a-rithist nuair a thèid a 'chòd a chur an gnìomh, faodaidh tu an abairt ReDim a chleachdadh a-rithist:

Ma tha Team_Size> 20 An uairsin thig ReDim Team_Members (1 Gu Team_Size) gu crìch ma tha

Cumaibh cuimhne gum bi ath-mheudachadh raon fiùghantach san dòigh seo a’ leantainn gu call a h-uile luach a tha air a stòradh san raon. Gus dàta a stòradh mar-thà san raon, feumaidh tu am prìomh fhacal a chleachdadh Glèidhmar a chithear gu h-ìosal:

Ma tha Team_Size> 20 An uairsin ReDim Preserve Team_Members (1 Gu Team_Size) Deireadh Ma tha

Gu mì-fhortanach am prìomh fhacal Glèidh chan urrainnear a chleachdadh ach airson crìoch àrd meud raon atharrachadh. Chan urrainnear crìoch ìosal an t-sreath atharrachadh san dòigh seo. Cuideachd, ma tha grunn mheudan aig an raon, an uairsin cleachd am prìomh fhacal Glèidh, chan urrainnear ach an tomhas mu dheireadh den raon ath-mheudachadh.

Leave a Reply