Arrays hauv Visual Basic rau Daim Ntawv Thov

Arrays hauv Visual Basic rau Daim Ntawv Thov yog cov qauv uas feem ntau khaws cov txheej txheem sib txawv ntawm tib hom. Array nkag tau nkag los ntawm lawv cov lej ntsuas.

Piv txwv li, muaj ib pab neeg ntawm 20 tus neeg uas nws cov npe yuav tsum tau txais kev cawmdim rau tom qab siv hauv VBA code. Ib tus tuaj yeem tshaj tawm 20 qhov sib txawv los tuav txhua lub npe, xws li:

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

Tab sis koj tuaj yeem siv txoj hauv kev yooj yim dua thiab ntau dua - khaws cov npe ntawm pab pawg neeg cov npe hauv ib qho ntawm 20 qhov sib txawv xws li txoj hlua:

Dim Team_Members(1 To 20) As String

Hauv kab qhia saum toj no, peb tau tshaj tawm ib qho array. Tam sim no cia peb sau tus nqi rau txhua yam ntawm nws cov ntsiab lus, zoo li no:

Team_Members(1) = "John Smith"

Ib qho txiaj ntsig ntxiv ntawm kev khaws cov ntaub ntawv hauv ib qho array, piv rau kev siv cov sib txawv sib txawv, ua kom pom tseeb thaum nws tsim nyog los ua tib qho kev txiav txim ntawm txhua lub ntsiab ntawm cov array. Yog tias cov npe ntawm pab pawg tau muab khaws cia rau hauv 20 qhov sib txawv, ces nws yuav siv 20 kab code los sau txhua lub sijhawm los ua tib yam nkaus rau lawv txhua tus. Txawm li cas los xij, yog tias cov npe khaws cia rau hauv ib qho array, ces koj tuaj yeem ua qhov xav tau nrog txhua tus ntawm lawv siv lub voj voog yooj yim.

Yuav ua li cas nws ua haujlwm yog qhia hauv qab no nrog tus lej piv txwv uas luam tawm cov npe ntawm txhua tus neeg koom nrog hauv kab ke. A active Excel daim ntawv.

Rau i = 1 txog 20 Cells(i,1).Value = Team_Members(i) Next i

Obviously, ua hauj lwm nrog ib tug array uas khaws 20 lub npe yog tsis tshua muaj cumbersome thiab ntau tseeb dua siv 20 txawv txawv. Tab sis yuav ua li cas yog tias cov npe no tsis yog 20, tab sis 1000? Thiab yog hais tias, nyob rau hauv tas li ntawd, nws yuav tsum tau khaws lub xeem lub npe thiab patronymic cais?! Nws yog qhov tseeb tias nws yuav dhau los ua tsis yooj yim sua kom lis cov ntaub ntawv ntim hauv VBA code yam tsis muaj kev pab los ntawm array.

Multidimensional arrays hauv Excel Visual Basic

Cov Visual Basic arrays tau tham saum toj no yog suav tias yog ib qho. Qhov no txhais tau tias lawv khaws cov npe yooj yim. Txawm li cas los xij, arrays tuaj yeem muaj ntau qhov ntev. Piv txwv li, ib qho ob-dimensional array tuaj yeem muab piv rau ib daim phiaj ntawm qhov tseem ceeb.

Cia peb hais tias koj xav khaws cov ntaub ntawv muag khoom txhua hnub rau Lub Ib Hlis rau 5 pawg sib txawv. Qhov no yuav xav tau ob-seem array uas muaj 5 qhov kev ntsuas rau 31 hnub. Cia peb tshaj tawm ib qho array zoo li no:

Dim Jan_Sales_Figures(1 txog 31, 1 txog 5) Raws li txiaj

Nkag mus rau array ntsiab Jan_Sales_Figures, koj yuav tsum siv ob qhov ntsuas qhia hnub ntawm lub hli thiab tus lej hais kom ua. Piv txwv li, qhov chaw nyob ntawm cov khoom uas muaj cov lej muag khoom rau 2- aw pab pawg rau 15 ib Lub Ib Hlis yuav sau li no:

Jan_Sales_Figures(15, 2)

Ib yam li ntawd, koj tuaj yeem tshaj tawm ib qho array nrog 3 lossis ntau qhov ntev - tsuas yog ntxiv qhov ntev ntxiv rau cov lus tshaj tawm array thiab siv cov lej ntxiv los xa mus rau cov ntsiab lus ntawm cov array no.

Tshaj tawm Arrays hauv Excel Visual Basic

Ua ntej hauv tsab xov xwm no, peb twb tau saib ntau qhov piv txwv ntawm kev tshaj tawm cov arrays hauv VBA, tab sis cov ncauj lus no tsim nyog saib ze dua. Raws li tau pom, ib qho array tuaj yeem raug tshaj tawm zoo li no:

Dim Team_Members(1 To 20) As String

Cov lus tshaj tawm no qhia rau VBA compiler tias cov array Pab pawg_Cov tswv cuab Muaj 20 qhov sib txawv uas tuaj yeem nkag tau ntawm qhov ntsuas ntawm 1 txog 20. Txawm li cas los xij, peb yuav xav txog kev suav peb cov array sib txawv ntawm 0 txog 19, qhov twg cov array yuav tsum tau tshaj tawm zoo li no:

Dim Team_Members(0 To 19) As String

Qhov tseeb, los ntawm lub neej ntawd, tus naj npawb ntawm cov ntsiab lus array pib los ntawm 0, thiab hauv kev tshaj tawm array, thawj qhov ntsuas yuav tsis raug teev tseg, zoo li qhov no:

Dim Team_Members(19) As String

VBA compiler yuav kho xws li kev nkag teb chaws raws li tshaj tawm array ntawm 20 ntsiab lus nrog indices ntawm 0 txog 19.

Tib txoj cai siv thaum tshaj tawm ntau qhov Visual Basic arrays. Raws li twb tau pom nyob rau hauv ib qho ntawm cov piv txwv, thaum tshaj tawm ib tug ob-dimensional array, cov indices ntawm nws qhov ntev yog sib cais los ntawm ib tug comma:

Dim Jan_Sales_Figures(1 txog 31, 1 txog 5) Raws li txiaj

Txawm li cas los xij, yog tias koj tsis qhia qhov pib qhov ntsuas rau ob qhov ntev ntawm cov array thiab tshaj tawm nws zoo li no:

Dim Jan_Sales_Figures(31, 5) Raws li txiaj

Tom qab ntawd qhov kev nkag no yuav raug kho raws li ob-dimensional array, thawj qhov loj me uas muaj 32 lub ntsiab lus nrog cov ntsuas ntawm 0 txog 31, thiab qhov thib ob qhov loj ntawm cov array muaj 6 lub ntsiab lus nrog cov ntsuas ntawm 0 txog 5.

Dynamic arrays

Tag nrho cov arrays nyob rau hauv cov piv txwv saum toj no muaj ib tug taag naj npawb ntawm qhov ntev. Txawm li cas los xij, ntau zaus peb tsis paub ua ntej qhov loj npaum li cas peb array yuav tsum yog. Peb tuaj yeem tawm ntawm qhov xwm txheej los ntawm kev tshaj tawm cov array loj, qhov loj ntawm qhov uas yuav loj dua qhov tsim nyog rau peb txoj haujlwm. Tab sis qhov kev daws teeb meem zoo li no yuav xav tau ntau lub cim xeeb ntxiv thiab tuaj yeem ua rau qeeb ntawm qhov program. Muaj kev daws teeb meem zoo dua. Peb tuaj yeem siv lub dynamic array - qhov no yog ib qho array uas nws loj tuaj yeem tsim thiab hloov pauv txhua lub sijhawm thaum ua tiav ntawm macro.

Ib qho dynamic array tau tshaj tawm nrog cov parentheses khoob, zoo li no:

Dim Team_Members() As String

Tom ntej no, koj yuav tsum tau tshaj tawm qhov dimension ntawm lub array thaum lub sij hawm ua code siv cov lus qhia ReDim:

ReDim Team_Members (1 txog 20)

Thiab yog tias thaum lub sijhawm ua tiav cov cai koj yuav tsum hloov qhov loj ntawm cov array dua, ces koj tuaj yeem siv ReDim qhia dua:

Yog Team_Size > 20 Ces ReDim Team_Members(1 To Team_Size) Xaus Yog

Nco ntsoov tias resizing ib dynamic array nyob rau hauv no txoj kev yuav ua rau poob ntawm tag nrho cov nqi khaws cia nyob rau hauv lub array. Txhawm rau khaws cov ntaub ntawv uas twb muaj lawm hauv array, koj yuav tsum siv lo lus tseem ceeb Khaws ciaraws li qhia hauv qab no:

Yog Team_Size > 20 Ces ReDim Preserve Team_Members(1 To Team_Size) Xaus Yog

Hmoov tsis zoo lo lus tseem ceeb Khaws cia tsuas yog siv tau los hloov pauv sab sauv ntawm ib qho array dimension. Qhov qis dua ntawm ib qho array tsis tuaj yeem hloov pauv li no. Tsis tas li ntawd, yog tias cov array muaj ntau qhov ntev, ces siv lo lus tseem ceeb Khaws cia, tsuas yog qhov kawg ntawm qhov array tuaj yeem hloov kho.

Sau ntawv cia Ncua