Definice pole (Array)
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
V následující ukázce kódu je okomentované vytvoření a naplnění pole hodnot ve VBA.
První příklad uvádí, jak hodnoty zadat postupně ručně.
'název makra Sub makro_pole() 'deklarace pole o pěti hodnotách Dim hlodavci(1 To 5) As String 'postupné načtení hodnot polí hlodavci(1) = "křeček" hlodavci(2) = "morče" hlodavci(3) = "myška" hlodavci(4) = "pískomil" hlodavci(5) = "vydra" 'zobrazení třetí položky MsgBox (hlodavci(3)) End Sub
Také je možné načíst je najednou.
prehled_zvirat = Array("křeček", "morče", "myška", "pískomil", "vydra")
V další ukázce je kód, který je přečte z buněk - to v praxi zřejmě použijeme častěji.
'název makra Sub makro_pole() 'deklarace pole o pěti hodnotách Dim hlodavci(1 To 5) As String 'postupné načtení hodnot polí hlodavci(1) = Cells(1, 1).Value hlodavci(2) = Cells(2, 1).Value hlodavci(3) = Cells(3, 1).Value hlodavci(4) = Cells(4, 1).Value hlodavci(4) = Cells(5, 1).Value 'zobrazení třetí položky MsgBox (hlodavci(3)) End Sub
Pokud by oblast byla delší, není samozřejmě možné načítat hodnoty po jedné. Použijeme cyklus.
'název makra Sub makro_pole() 'deklarace pole o pěti hodnotách Dim hlodavci(1 To 5) As String Dim x As Integer 'opakování cyklu For x = 1 To 5 'postupné načtení hodnot polí hlodavci(x) = Cells(x, 1).Value Next x 'zobrazení třetí položky MsgBox (hlodavci(3)) End Sub
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
Dobrý den, chtěl byh se zeptat, jak by byl kód upraven kdyby zdrojové hodnoty byly v jiném listu v buňkách F5:F20 ?
Děkuji
Dobrý den. Jak zapsat, když nevím předem, kolik vložených hodnot bude? Děkuji
poslední makro mi nefunguje
má být
Dim hlodavci(1 To 5) As String
Díky, upravil jsem. JB
Dobrý den,
nefungujeme mě návod na hromadnou inicializaci makra pomocí ARRAY (). Musel jsem udělat postupně pro jednotlivé indexy.
Jinak super stránky, moc užitečné.
Díky