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ě.

  1. 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

  2. Dobrý den. Jak zapsat, když nevím předem, kolik vložených hodnot bude? Děkuji

  3. 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

Napsat komentář

Vaše emailová adresa nebude publikována.

*

smazat formulářOdeslat komentář