Lúb i VBA

Tá cásanna ann nuair a bhíonn gá le clár VBA an tsraith chéanna gníomhartha a dhéanamh arís agus arís eile i ndiaidh a chéile (is é sin, an bloc céanna cód a athdhéanamh arís agus arís eile). Is féidir é seo a dhéanamh trí lúba VBA a úsáid.

I measc na lúba VBA tá:

Ansin, déanfaimid breathnú níos géire ar gach ceann de na timthriallta seo.

Le haghaidh Oibreoir Lúb i Visual Basic

Struchtúr an oibreora lúb An Is féidir in Visual Basic a eagrú i gceann amháin de dhá fhoirm: mar lúb Do… Ar Aghaidh nó mar lúb Do Gach.

Rothaíocht “Do … Ar Aghaidh”

Timthriall Do… Ar Aghaidh úsáideann athróg a thógann luachanna go seicheamhach ó raon tugtha. Le gach athrú ar luach an athróg, déantar na gníomhartha atá faoi iamh i gcorp an timthrialla. Is furasta é seo a thuiscint ó shampla simplí:

Do i = 1 Go 10 Iomlán = Iomlán + iEagar(i) Ar Aghaidh i

Sa lúb simplí seo Do… Ar Aghaidh úsáidtear athróg i, a ghlacann na luachanna 1, 2, 3, … 10 go seicheamhach, agus i gcás gach ceann de na luachanna seo, déantar an cód VBA taobh istigh den lúb a fhorghníomhú. Mar sin, suimíonn an lúb seo gnéithe an eagar. iArray in athróg Iomlán.

Sa sampla thuas, níl an t-incrimint lúb sonraithe, mar sin chun an athróg a incrimint i ó 1 go 10, is é an réamhshocrú ná incrimint 1… Mar sin féin, i gcásanna áirithe is gá luachanna incriminte éagsúla a úsáid don lúb. Is féidir é seo a dhéanamh ag baint úsáide as an eochairfhocal Céimmar a léirítear sa sampla simplí seo a leanas.

Le haghaidh d = 0 Go 10 Céim 0.1 dIomlán = dIomlán + d Ar Aghaidh d

Ós rud é sa sampla thuas, socraítear an chéim incriminte cothrom le 0.1, ansin an athróg dIomlán do gach athrá den timthriall glacann sé na luachanna 0.0, 0.1, 0.2, 0.3,… 9.9, 10.0.

Chun an chéim lúb i VBA a chinneadh, is féidir leat luach diúltach a úsáid, mar shampla, mar seo:

Do i = 10 Go 1 Chéim -1 iArray(i) = i Ar Aghaidh i

Seo é an t-incrimint -1, mar sin an athróg i agus glacann gach athrá den timthriall na luachanna 10, 9, 8, …1.

Lúb “Do Chách”

Timthriall Do Gach cosúil le timthriall Do… Ar Aghaidh, ach in ionad atriallta thar sheicheamh na luachanna don athróg chuntar, an lúb Do Gach déanann sé sraith gníomhartha do gach oibiacht sa ghrúpa sonraithe réad. Sa sampla seo a leanas, ag baint úsáide as lúb Do Gach Áiríonn sé gach bileog sa leabhar oibre Excel reatha:

Laghdaigh an Bhileog Mar Bhileog Oibre Do Gach Bileog i mBileoga Oibre MsgBox "Найден лист:" & wSheet.Name

Ráiteas idirbhriste lúb “Scoir Chun”

oibreoir Scoir Do a úsáidtear chun cur isteach ar an timthriall. Chomh luath agus a aimsítear an ráiteas seo sa chód, cuireann an clár deireadh le forghníomhú an lúb agus téann sé ar aghaidh go dtí forghníomhú na ráiteas atá sa chód díreach tar éis an lúb seo. Is féidir é seo a úsáid, mar shampla, chun luach sonrach a chuardach in eagar. Chun seo a dhéanamh, ag baint úsáide as lúb, déantar gach eilimint den eagar a scanadh. Chomh luath agus a aimsítear an eilimint riachtanach, ní gá breathnú tríd an gcuid eile - cuirtear isteach ar an timthriall.

Feidhmchlár oibreora Scoir Do léirithe sa sampla seo a leanas. Anseo atriálann an lúb níos mó ná 100 iontráil eagair agus cuireann sí gach ceann i gcomparáid le luach na hathróige dVal… Má aimsítear meaitseáil, cuirtear deireadh leis an lúb:

Le haghaidh i = 1 Go 100 Má dValues(i) = dVal Ansin InnéacsVal = i Scoir Don Chríoch Más Ar Aghaidh i

An Déan Cé go Lúb in Visual Basic

Timthriall Déan agus déanann sé bloc cód chomh fada agus a chomhlíontar an coinníoll sonraithe. Seo a leanas sampla de nós imeachta Fo, ina bhfuil baint úsáide as an lúb Déan agus Taispeántar uimhreacha Fibonacci nach mó ná 1000 go seicheamhach:

'Aschuir an fho-nós imeachta Uimhreacha Fibonacci nach mó ná 1000 Fo-Fibonacci() cuntar Dim i As Integer' chun suíomh na heiliminte sa seicheamh a léiriú Stórálann Dim iFib As Integer 'luach reatha an tseichimh Dim iFib_Next As Integer' an chéad luach eile den seicheamh Dim iStep As Slánuimhir ' stórálann méid na chéad incriminte eile' cuir tús le hathróga i agus iFib_Next i = 1 iFib_Next = 0 'Déan Cé go rithfear lúb go dtí go mbeidh luach 'uimhir reatha Fibonacci níos mó ná 1000 Déan Cé go iFib_Next < 1000 Má i = 1 Ansin 'cás speisialta don chéad eilimint iStep = 1 iFib = 0 Eile 'shábháil méid an chéad incrimint eile roimh fhorscríobh' luach reatha an tseichimh iStep = iFib iFib = iFib_Ar Aghaidh Deireadh Má 'phriontáil an uimhir reatha Fibonacci i gcolún A de an bhileog oibre gníomhach 'sa ró leis an innéacs i Cealla(i , 1).Value = iFib 'ríomh an chéad uimhir Fibonacci eile agus incrimint an t-innéacs suímh eiliminte faoi 1 iFib_Next = iFib + iStep i = i + 1 Lúb Deireadh Fo

Sa sampla a thugtar, an riocht iFib_ Ar Aghaidh < 1000 sheiceáil ag tús an lúb. Dá bhrí sin, má tá an chéad luach iFib_ Ar Aghaidh Dá mbeadh níos mó ná 1000 ann, ní dhéanfaí an lúb riamh.

Bealach eile chun lúb a chur i bhfeidhm Déan agus - cuir an coinníoll ní ag an tús, ach ag deireadh an lúb. Sa chás seo, déanfar an lúb a fhorghníomhú uair amháin ar a laghad, is cuma an gcomhlíontar an coinníoll.

Scéimreach, timthriall den sórt sin Déan agus agus beidh an riocht a sheiceáil ag an deireadh cuma mar seo:

Déan ... Lúb Agus iFib_Next < 1000

Féach «Déan Go dtí» i Visual Basic

Timthriall Déan Go dtí an-chosúil le timthriall Déan agus: déantar an bloc cód i gcorp an lúb arís agus arís eile go dtí go gcomhlíontar an coinníoll sonraithe (is é toradh na slonn coinníollach True). Sa chéad nós imeachta eile Fo ag baint úsáide as timthriall Déan Go dtí luachanna a aisghabháil ó gach cealla i gcolún A bileog oibre go dtí go dtagann an colún ar chill fholamh:

iRow = 1 Déan Go dtí IsEmpty(Cealla(iRow, 1)) 'Stóráiltear luach na cille reatha san eagar dCellValues ​​​​dCellValues(iRow) = Cealla(iRow, 1).Value iRow = iRow + 1 Lúb

Sa sampla thuas, an riocht IsEmpty(Cealla(iRow, 1)) suite ag tús an struchtúir Déan Go dtí, mar sin déanfar an lúb a fhorghníomhú uair amháin ar a laghad mura bhfuil an chéad chill a tógadh folamh.

Mar sin féin, mar a thaispeántar sna samplaí lúb Déan agus, i gcásanna áirithe is gá an lúb a fhorghníomhú uair amháin ar a laghad, beag beann ar thoradh tosaigh an léiriú coinníollach. Sa chás seo, ba chóir an abairt coinníollach a chur ag deireadh an lúb, mar seo:

Déan ... Lúb Go dtí Is Folamh(Cealla(iRow, 1))

Leave a Reply