Eagair i Visual Basic le haghaidh Feidhme

Is struchtúir iad eagair in Visual Basic for Application a stórálann tacair d'athróga gaolmhara den chineál céanna de ghnáth. Faightear iontrálacha eagair trína n-innéacs uimhriúil.

Mar shampla, tá foireann 20 duine ann ar gá a n-ainmneacha a shábháil le húsáid níos déanaí i gcód VBA. D’fhéadfaí 20 athróg a dhearbhú le gach ainm a choinneáil, mar atá:

Dim Team_Member1 As Teaghrán Dim Team_Member2 As Teaghrán ... Dim Team_Member20 As Teaghrán

Ach is féidir leat bealach i bhfad níos simplí agus níos eagraithe a úsáid - déan liosta d'ainmneacha na mball foirne a stóráil i raon 20 athróg mar teaghrán:

Dim Team_Members(1 go 20) Mar Theaghrán

Sa líne a thaispeántar thuas, tá eagar dearbhaithe againn. Anois scríobhaimis luach ar gach eilimint dá chuid, mar seo:

Team_Members(1) = "John Smith"

Tagann buntáiste breise as sonraí a stóráil in eagar, i gcomparáid le hathróga ar leith a úsáid, nuair a bhíonn gá leis an ngníomh céanna a dhéanamh ar gach eilimint den eagar. Dá mbeadh ainmneacha na mball foirne stóráilte i 20 athróg ar leith, thógfadh sé 20 líne de chód a scríobh gach uair chun an gníomh céanna a dhéanamh ar gach ceann acu. Mar sin féin, má tá na hainmneacha a stóráil i sraith, ansin is féidir leat a dhéanamh ar an ngníomh atá ag teastáil le gach ceann acu ag baint úsáide as lúb simplí.

Léirítear conas a oibríonn sé thíos le códshampla a phrionnaíonn ainmneacha gach ball foirne go seicheamhach sna cealla colúin. A Excel clár oibre saor in aisce,.

Le haghaidh i = 1 Go 20 Cealla(i,1).Luach = Foireann_Comhaltaí(i) Ar Aghaidh i

Ar ndóigh, tá oibriú le sraith a stórálann 20 ainm i bhfad níos deacra agus níos cruinne ná 20 athróg ar leith a úsáid. Ach cad mura bhfuil na hainmneacha seo 20, ach 1000? Agus más rud é, ina theannta sin, go bhfuil sé riachtanach na sloinnte agus pátrúnacht a choinneáil ar leithligh?! Is léir go n-éireoidh sé go hiomlán dodhéanta go luath méid sonraí den sórt sin a láimhseáil i gcód VBA gan cabhair ó eagar.

Eagair iltoiseacha in Excel Visual Basic

Meastar na heagair Visual Basic a pléadh thuas a bheith aontoiseach. Ciallaíonn sé seo go stórálann siad liosta simplí ainmneacha. Mar sin féin, is féidir toisí iolracha a bheith ag eagair. Mar shampla, is féidir eagar déthoiseach a chur i gcomparáid le greille luachanna.

Ligean le rá gur mhaith leat na figiúirí díolacháin laethúla do mhí Eanáir a shábháil ar feadh 5 fhoireann éagsúla. Éileoidh sé seo sraith dhéthoiseach ina mbeidh 5 shraith méadrachta ar feadh 31 lá. Dearbhaímid eagar mar seo:

Dim Jan_Sales_Figiúirí(1 Go 31, 1 Go 5) Mar Airgeadra

Chun rochtain a fháil ar eilimintí eagar Jan_Sales_Figiúirí, ní mór duit dhá innéacs a úsáid a léiríonn lá na míosa agus an uimhir ordaithe. Mar shampla, seoladh eilimint ina bhfuil figiúirí díolacháin le haghaidh 2-ó foirne le haghaidh 15 ú Scríobhfaí Eanáir mar seo:

Jan_Sales_Figiúirí(15, 2)

Ar an mbealach céanna, is féidir leat eagar le 3 thoise nó níos mó a dhearbhú - níl le déanamh ach toisí breise a chur leis an dearbhú eagair agus innéacsanna breise a úsáid chun tagairt a dhéanamh d'eilimintí an eagar seo.

Arrays a dhearbhú in Excel Visual Basic

Níos luaithe san Airteagal seo, d'fhéachamar cheana féin ar roinnt samplaí de eagair a dhearbhú i VBA, ach tá breathnú níos dlúithe tuillte ag an ábhar seo. Mar a thaispeántar, is féidir eagar aontoiseach a dhearbhú mar seo:

Dim Team_Members(1 go 20) Mar Theaghrán

Insíonn dearbhú den sórt sin don tiomsaitheoir VBA go bhfuil an t-eagar Foireann_Baill comhdhéanta de 20 athróg is féidir a rochtain ag innéacsanna ó 1 go 20. Mar sin féin, d’fhéadfaimis smaoineamh ar ár n-athróga eagair a uimhriú ó 0 go 19, agus sa chás sin ba cheart an t-eagar a dhearbhú mar seo:

Dim Team_Members(0 go 19) Mar Theaghrán

Go deimhin, de réir réamhshocraithe, tosaíonn uimhriú na n-eilimintí eagair ó 0, agus sa dearbhú eagair, ní féidir an t-innéacs tosaigh a shonrú ar chor ar bith, mar seo:

Dim Team_Members(19) Mar Teaghrán

Déileálfaidh an tiomsaitheoir VBA le hiontráil den sórt sin mar a dhearbhóidh sraith 20 eilimint le hinnéacsanna ó 0 go 19.

Tá feidhm ag na rialacha céanna nuair a dhéantar eagair iltoiseacha Visual Basic a dhearbhú. Mar a léiríodh cheana i gceann de na samplaí, nuair a bhíonn eagar déthoiseach á dhearbhú, tá innéacsanna a thoisí scartha le camóg:

Dim Jan_Sales_Figiúirí(1 Go 31, 1 Go 5) Mar Airgeadra

Mar sin féin, mura sonraíonn tú innéacs tosaigh don dá ghné den eagar agus dearbhaigh mar seo é:

Dim Jan_Sales_Figiúirí(31, 5) Mar Airgeadra

ansin déileálfar leis an iontráil seo mar eagar déthoiseach, a bhfuil 32 eilimint sa chéad toise le hinnéacsanna ó 0 go 31, agus tá 6 eilimint sa dara gné den eagar le hinnéacsanna ó 0 go 5.

Eagair dhinimiciúla

Tá líon seasta toisí ag gach eagar sna samplaí thuas. Mar sin féin, i go leor cásanna níl a fhios againn roimh ré cén méid ba cheart a bheith inár n-eagar. Is féidir linn éirí as an scéal trí raon ollmhór a fhógairt, a mbeidh a méid cinnte níos mó ná mar is gá dár tasc. Ach beidh go leor cuimhne breise ag teastáil le réiteach den sórt sin agus is féidir leis an gclár a mhoilliú. Tá réiteach níos fearr ann. Is féidir linn eagar dinimiciúil a úsáid - is eagar é seo ar féidir a mhéid a shocrú agus a athrú roinnt uaireanta le linn feidhmiú macra.

Dearbhaítear eagar dinimiciúil le lúibíní folamh, mar seo:

Dim Team_Members() Mar Teaghrán

Ansin, beidh ort toise an eagar a dhearbhú le linn forghníomhú an chóid ag baint úsáide as an slonn ReDim:

Foireann ReDim_Members(1 go 20)

Agus más rud é le linn an cód a fhorghníomhú is gá duit méid an eagar a athrú arís, is féidir leat an slonn ReDim a úsáid arís:

Má chríochnaíonn Team_Size > 20 Ansin Críochnaíonn ReDim Team_Members(1 To Team_Size) Má

Coinnigh i gcuimhne go gcaillfear na luachanna go léir a stóráiltear san eagar mar thoradh ar athrú ar eagar dinimiciúil ar an mbealach seo. Chun sonraí a stóráil cheana féin san eagar, ní mór duit a bhaint as an eochairfhocal Coinnighmar a thaispeántar thíos:

Má chríochnaíonn Team_Size > 20 Ansin Críochnaigh ReDim Preserve Team_Members(1 To Team_Size) Má

Ar an drochuair an eochairfhocal Coinnigh ní féidir é a úsáid ach chun teorainn uachtarach toise eagair a athrú. Ní féidir teorainn íochtair eagar a athrú ar an mbealach seo. Chomh maith leis sin, má tá an eagar toisí iolracha, ansin ag baint úsáide as an eochairfhocal Coinnigh, ní féidir ach an ghné dheireanach den eagar a athrú méid.

Leave a Reply