Mi az a VBA-tömb az Excelben, és hogyan kell programozni egyet

A VBA(VBA) évek óta a Microsoft Office programcsomag része. Bár nem rendelkezik a teljes VB-alkalmazások teljes funkcionalitásával és erejével, a VBA rugalmasságot biztosít az Office -felhasználók számára az (Office)Office - termékek integrálásához és az azokban végzett munka automatizálásához.

A VBA(VBA) egyik leghatékonyabb eszköze az adatok teljes tartományának betöltése egyetlen változóba, az úgynevezett tömbbe. Az adatok ilyen módon történő betöltésével többféleképpen manipulálhatja vagy számításokat végezhet ezen az adatokon.

Tehát mi az a VBA tömb? Ebben a cikkben válaszolunk erre a kérdésre, és megmutatjuk, hogyan használhatja ezt a saját VBA-szkriptjében(your own VBA script) .

Mi az a VBA-tömb?

A VBA -tömb használata az Excelben(Excel) nagyon egyszerű, de a tömbök fogalmának megértése kissé bonyolult lehet, ha még soha nem használt.

Képzeljen(Think) el egy tömböt, mint egy dobozt, benne szakaszokkal. Az egydimenziós tömb egy olyan doboz, amely egy sor szakaszt tartalmaz. A kétdimenziós tömb egy olyan doboz, amely két sornyi szakaszt tartalmaz.

Ennek a „doboznak” az egyes szakaszaiba tetszőleges sorrendben helyezheti el az adatokat.

A VBA(VBA) -szkript elején meg kell határoznia ezt a „dobozt” a VBA - tömb meghatározásával. Tehát egy olyan tömb létrehozásához, amely egy adathalmazt tartalmazhat (egy egydimenziós tömb), a következő sort kell írnia.

Dim arrMyArray(1 To 6) As String

A program későbbi szakaszában a tömb bármely szakaszába elhelyezhet adatokat a zárójelben lévő szakaszra hivatkozva.

arrMyArray(1) = "Ryan Dube"

A következő sor segítségével kétdimenziós tömböt hozhat létre.

Dim arrMyArray(1 To 6,1 to 2) As Integer

Az első szám a sort, a második az oszlopot jelöli. Tehát a fenti tömb egy 6 sorból és 2 oszlopból álló tartományt tartalmazhat.

Ennek a tömbnek bármely elemét betöltheti adatokkal az alábbiak szerint.

arrMyArray(1,2) = 3

Ez egy 3-ast tölt be a B1 cellába.

Egy tömb bármilyen típusú adatot tartalmazhat normál változóként, például karakterláncokat, logikai értékeket, egész számokat, lebegőpontokat stb.

A zárójelben lévő szám változó is lehet. A programozók általában egy For Loop -ot használnak a tömb összes szakaszának végigszámlálására, és a táblázat adatcelláinak betöltésére a tömbbe. A cikk későbbi részében megtudhatja, hogyan kell ezt megtenni.

Hogyan lehet VBA-tömböt programozni Excelben

Vessünk egy pillantást egy egyszerű programra, ahol érdemes lehet információkat betölteni egy táblázatból egy többdimenziós tömbbe.

Példaként nézzünk meg egy termékértékesítési táblázatot, ahol ki szeretné húzni az értékesítési képviselő nevét, cikkét és a teljes értékesítést a táblázatból.

Vegye figyelembe, hogy a VBA -ban , amikor sorokra vagy oszlopokra hivatkozik, a sorokat és oszlopokat(rows and columns) a bal felső saroktól kezdve 1-től számolja. Tehát a rep oszlop 3, az elem oszlop 4, az összes oszlop pedig 7.

Ahhoz, hogy ezt a három oszlopot mind a 11 sorra betöltse, meg kell írnia a következő szkriptet.

Dim arrMyArray(1 To 11, 1 To 3) As String
Dim i As Integer, j As Integer
For i = 2 To 12
For j = 1 To 3
arrMyArray(i-1, j) = Cells(i, j).Value
Next j
Next i

Észre fogja venni, hogy a fejlécsor kihagyásához az első For look sorszámának 2-vel kell kezdődnie 1 helyett. Ez azt jelenti, hogy a cellaérték betöltésekor 1-et kell kivonnia a tömbsor értékéből. a tömbbe a Cells (i, j) segítségével.Érték.

Hová illessze be a VBA-tömb szkriptjét(Your VBA Array Script)

A VBA -szkript program Excelben való elhelyezéséhez a (Excel)VBA - szerkesztőt kell használnia . Ezt úgy érheti el, hogy kiválasztja a Fejlesztő(Developer) menüt, és a szalag Vezérlők(Controls) részében a Kód megtekintése lehetőséget választja.(View Code)

Ha nem látja a Fejlesztőt(Developer) a menüben, hozzá kell adnia. Ehhez válassza a Fájl(File) és beállítások lehetőséget(Options) az Excel beállításai ablak megnyitásához.

Módosítsa a parancsok kijelölését a legördülő menüből Minden parancsra(All Commands) . Válassza a Fejlesztő(Developer) lehetőséget a bal oldali menüből, majd a Hozzáadás(Add) gombbal helyezze át a jobb oldali ablaktáblába. Jelölje be a jelölőnégyzetet az engedélyezéséhez, és kattintson az OK gombra(OK) a befejezéshez.

Amikor megnyílik a Kódszerkesztő(Code Editor) ablak, győződjön meg arról, hogy a bal oldali ablaktáblában az a munkalap van kiválasztva, amelyen az adatai vannak. A bal oldali legördülő menüben válassza a Munkalap lehetőséget, a jobb oldalon pedig az (Worksheet)Aktiválás(Activate) lehetőséget. Ez létrehoz egy új szubrutint Worksheet_Activate () néven.

Ez a funkció a táblázatfájl megnyitásakor fog futni. Illessze be a kódot a szkript ablaktáblájába ezen az alprogramon belül.

Ez a szkript a 12 soron keresztül működik, és a 3. oszlopból tölti be a képviselő nevét, a 4. oszlopból a tételt, a 7. oszlopból pedig a teljes eladást.

Ha mindkét For hurok befejeződött, az arrMyArray kétdimenziós tömb tartalmazza az eredeti lapon megadott összes adatot.

Tömbök kezelése Excel VBA-ban

Tegyük fel, hogy 5%-os forgalmi adót szeretne alkalmazni az összes végső eladási árra, majd az összes adatot egy új lapra szeretné írni.

Ezt úgy teheti meg, hogy az első után egy másik For ciklust ad hozzá, és az eredményeket egy új lapra írja ki.

For k = 2 To 12
Sheets("Sheet2").Cells(k, 1).Value = arrMyArray(k - 1, 1)
Sheets("Sheet2").Cells(k, 2).Value = arrMyArray(k - 1, 2)
Sheets("Sheet2").Cells(k, 3).Value = arrMyArray(k - 1, 3)
Sheets("Sheet2").Cells(k, 4).Value = arrMyArray(k - 1, 3) * 0.05
Next k

Ez a teljes tömböt „kirakja” a 2. munkalapra(Sheet2) , egy további sorral, amely az adóösszeg 5%-kal szorozva tartalmazza az összeget.

A kapott lap így fog kinézni.

Amint láthatja, az Excel VBA -tömbjei rendkívül hasznosak és ugyanolyan sokoldalúak, mint bármely más Excel-trükk(any other Excel trick)

A fenti példa egy nagyon egyszerű tömb használatára szolgál. Létrehozhat sokkal nagyobb tömböket, és végrehajthat rendezést, átlagolást vagy sok más funkciót a bennük tárolt adatok alapján.

Ha igazán kreatív akar lenni, akkor akár két tömböt is létrehozhat, amelyek két különböző lap cellatartományát tartalmazzák , és számításokat végezhet az egyes tömbök elemei között.(containing a range of cells)

Az alkalmazásoknak csak a képzelet szab határt.



About the author

Ingyenes szoftverfejlesztő vagyok, és a Windows Vista/7 szószólója vagyok. Több száz cikket írtam az operációs rendszerrel kapcsolatos különféle témákban, beleértve tippeket és trükköket, javítási útmutatókat és bevált módszereket. Cégemen, a Help Desk Services szolgáltatáson keresztül irodai tanácsadási szolgáltatásokat is nyújtok. Mélyen ismerem az Office 365 működését, funkcióit és a leghatékonyabb használatukat.



Related posts