Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
trochu více o polích v MS Excelu a jak se k ním chovat ve VBA - pokud máte zájem o pole ropná zkuste jiný článek :)
Teoretický úvod do polí je sepsal v článku: Excel pole a jejich využítí - základy.. V tomto článku se zaměřím na praktické ukázky. Jak nadefinovat pole, jak do něj zapsat hodnoty a jak z něj hodnoty vyčíst.
Jak definovat pole. Toto pole se počítá od nuly. Doporučuji zachovat i když je možnost nadefinovat Excelu, aby počítal od jedné, jelikož při přetahování skriptu může dělat problém a douho budete onu chybu hledat. Alespoň toto je má zkušenost. Takže kód je jednoduchý:
Dim Arr(5)
Arr(0) = "Pondělí"
Arr(1) = "Úterý"
Arr(2) = "Středa"
Arr(3) = "Čtvrtek"
Arr(4) = "Pátek"
' Vypíšeme do dialogového okna.
MsgBox Arr(0) & "-" & Arr(1) & "-" & Arr(2) & "-" & Arr(3) & "-" & Arr(4)
Poznámka: Hodnoty lze vyčítat přes cyklus, ale pro jednoduchost jsem jej v ukázce nepoužil.
Ukázka:
Poznámka: Jak jsem psal lze použít deklaraci Option Base 1, poté se indexuje od jedné, ale nedoporučuji.
Option Base 1
Sub MojePole( )
Dim Arr(4)
Arr(1) = “Jaro”
Arr(2) = “Léto”
Arr(3) = “Podzim”
Arr(4) = “Zima”
Msgbox Arr(1) & "-" & Arr(2) & "-" & Arr(3) & "-" & Arr(4) & "-" & Arr(5)
End Sub
V ukázkovém příkladě pro 7 hodnot.
Dim Arr(7)
Arr(0) = "Po"
Arr(1) = "Út"
Arr(2) = "St"
Arr(3) = "Čt"
Arr(4) = "Pá"
Arr(5) = "So"
Arr(6) = "Ne"
MsgBox Arr(0) & "-" & Arr(1) & "-" & Arr(2) & "-" & Arr(3) & "-" & Arr(4) & "-" & Arr(5) & "-" & Arr(6)
Pozor: Provede smazání původních hodnot.
ReDim Arr(5)
'Dim Arr(7)
Arr(0) = "Po"
Arr(1) = "Út"
Arr(2) = "St"
Arr(3) = "Čt"
Arr(4) = "Pá"
ReDim Arr(7)
Arr(5) = "So"
Arr(6) = "Ne"
MsgBox Arr(0) & "-" & Arr(1) & "-" & Arr(2) & "-" & Arr(3) & "-" & Arr(4) & "-" & Arr(5) & "-" & Arr(6)
Ukázka jak zvětšit pole, tak aby nedošlo k přepsání původních dat jež už máme uložená.
ReDim Arr(5)
'Dim Arr(7)
Arr(0) = "Po"
Arr(1) = "Út"
Arr(2) = "St"
Arr(3) = "Čt"
Arr(4) = "Pá"
ReDim Preserve Arr(7)
Arr(5) = "So"
Arr(6) = "Ne"
MsgBox Arr(0) & "-" & Arr(1) & "-" & Arr(2) & "-" & Arr(3) & "-" & Arr(4) & "-" & Arr(5) & "-" & Arr(6)
Ukázka dvojrozměrného pole. Lze provozovat i tří a více rozměrná pole, ale osobně nepoužívám.
Arr(0, 0) = 1000
Arr(0, 1) = 120000
Arr(1, 0) = 12
Arr(1, 1) = 20000
MsgBox "Počet PC v roce 1900: " & Arr(0, 0) & vbCrLf & _
"Počet notebooků v roce 1900: " & Arr(1, 0) & vbCrLf & _
"Počet Pc v roce 2000: " & Arr(0, 1) & vbCrLf & _
"Počet notebooků v roce 1900: " & Arr(1, 1)
Poznámka: Jde o modelový příklad, nic lepšího mě pro prezentaci dvojrozměrného pole nenapadlo, ale třeba bude mít někdo nápad, který napíše v komentářích.
Ukázkový příklad Prace s poli v MS Excel za využití VBA - ke stažení zdarma
Praktické ukázky ať nemusím na dotazy odpovídat jednotlivě.
Článek byl aktualizován: 19.09.2020 11:07
Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.
Přidáno: 13.07.12 15:04
Dobrý den, snažím se o dynamickou definici dvourozměrného pole, ale nedaří se. Mám dva sloupečky vedle sebe, které oba dva bych rád nasoukal do pole a to následně prohledával.Neznám počet řádků před začátkem cyklu. Jeden sloupeček podle návodů bez problémů nasoukám. Mohl by mě prosím někdo navést? Díky, Vláďa
Přidáno: 14.07.12 17:50
To Dvuorozměrná pole: Nepomůže web RAdka Jurečka? http://www.rjurecek.cz/navody/PoleOblast.htm
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2024 |