Přejít na hlavní obsah

Jak poznám délku dvourozměrného pole VBA Excel?

Při programování VBA Excel je často potřeba pracovat s dvourozměrnými poli. Jednou z důležitých otázek při práci s těmito poli je znát jejich délku. Délka pole určuje počet prvků v něm obsažených a je důležitou informací pro vytváření cyklů a algoritmů zpracování dat.

K určení délky jednorozměrného pole lze v aplikaci VBA Excel použít funkci UBound. S dvojrozměrnými poli je to však poněkud složitější. Dvourozměrné pole má dvě dimenze-řádky a sloupce. Chcete-li určit délku dvourozměrného pole, musíte znát počet řádků a sloupců.

K určení počtu řádků ve dvourozměrném poli v aplikaci VBA Excel lze použít funkci UBound spolu s indexem 1. To vyvolá funkci UBound pouze pro první měření pole, tedy pro řádky. Stejně tak lze k určení počtu sloupců ve dvourozměrném poli použít funkci UBound s indexem 2, což ji vyvolá pro druhé měření, tedy pro sloupce.

Jak určíte velikost dvourozměrného pole v Excelu VBA?

Dim arr(1 To 3, 1 To 4) As IntegerDim rowsCount As IntegerDim columnsCount As IntegerrowsCount = UBound(arr, 1)columnsCount = UBound(arr, 2)MsgBox "Размерность массива: " & rowsCount & "x" & columnsCount

V tomto příkladu je vytvořeno dvourozměrné pole arr o rozměrech 3x4. Funkce UBound pak určuje počet řádků a sloupců pole. Výsledné hodnoty se ukládají do proměnných rowsCount a columnsCount . Výsledkem je zpráva o velikosti pole.

Příprava pole

Chcete-li vytvořit dvourozměrné pole v aplikaci VBA Excel, musíte použít klíčové slovo Dim a uveďte velikost každého měření v závorkách. Například:

Dim myArray(10, 5) As Variant

Zde vytváříme pole s 10 řádky a 5 sloupci. Klíčové slovo As Variant každý prvek pole může být libovolného typu dat.

Po vytvoření pole lze jej vyplnit hodnotami. To lze provést pomocí cyklů For nebo For Each, v závislosti na požadované logice plnění. Například:

For i = 1 To 10For j = 1 To 5myArray(i, j) = i + jNext jNext i

Zde používáme dva vnořené cykly For pro průchod každého prvku pole a přiřazení hodnoty rovnající se součtu indexů řádku a sloupce.

Po vyplnění pole lze jeho délku získat pomocí vestavěných funkcí UBound a LBound. Funkce UBound vrátí horní hranici pole a funkce LBound – dolní hranice. Například:

rows = UBound(myArray, 1)columns = UBound(myArray, 2)

Zde získáme počet řádků a sloupců v poli a uložíme je do proměnných rows a columns patřičně.

Po přípravě dvourozměrného pole v aplikaci VBA Excel je tedy možné s ním začít pracovat a využít jeho délku k pohodlnému zpracování dat.

Získání dimenze pole

K získání rozměrnosti dvourozměrného pole v aplikaci VBA Excel lze použít několik způsobů.

  1. Použití funkce Lbound a UBound: Funkce LBound vrací index spodní hranice zadaného měření pole a funkce UBound vrací index horní hranice zadaného měření pole. Příklad kódu:
Dim myArray(1 To 3, 1 To 5) As VariantDim numRows As IntegerDim numColumns As IntegernumRows = UBound(myArray, 1) - LBound(myArray, 1) + 1numColumns = UBound(myArray, 2) - LBound(myArray, 2) + 1MsgBox "Размерность массива: " & numRows & " строк, " & numColumns & " столбцов"

V tomto příkladu je vytvořeno dvourozměrné pole myArray o velikosti 3x5. Funkce LBound a UBound pak určují spodní a horní hranice pro každé měření pole, po kterém se vypočítá jeho velikost.

  1. Použití vlastností Array: VBA Excel má vlastnosti Array, které vám umožňují získat informace o poli, aniž byste museli používat funkce LBound a UBound. Příklad kódu:
Dim myArray(1 To 3, 1 To 5) As VariantDim numRows As IntegerDim numColumns As IntegernumRows = UBound(myArray, 1)numColumns = UBound(myArray, 2)MsgBox "Размерность массива: " & numRows & " строк, " & numColumns & " столбцов"

V tomto příkladu je vytvořeno dvourozměrné pole myArray o velikosti 3x5. Pomocí vlastností Array se získávají informace o horních hranicích každého měření pole a poté se vypočítá jeho velikost.

Oba tyto způsoby umožňují dimenzování dvourozměrného pole v aplikaci VBA Excel. Výběr konkrétního způsobu závisí na preferencích programátora a vlastnostech konkrétního úkolu.

Určení počtu řádků

V aplikaci VBA Excel lze pomocí funkce UBound určit počet řádků ve dvourozměrném poli . Tato funkce vrací horní hranici zadaného měření pole.

Chcete-li určit počet řádků, musíte do funkce UBound přenést pole a zadat měření rovnající se 1. Číslování měření v polích v Excelu VBA začíná od nuly. První měření (sloupce) má tedy index 0 a druhé měření (řádky) má index 1.

Příklad použití funkce UBound k určení počtu řádků ve dvourozměrném poli:

Dim arr(3, 2) As VariantDim numRows As Integer'Заполнение массива даннымиnumRows = UBound(arr, 1) + 1MsgBox "Количество строк: " & numRows

V tomto příkladu je vytvořeno dvourozměrné pole arr o rozměrech 4 x 3 (4 řádky, 3 sloupce). Funkce UBound (arr, 1) vrací index horní hranice prvního měření pole, tedy počet řádků mínus 1. Přidání 1 vám umožní získat skutečný počet řádků v poli. Výsledek je přiřazen proměnné numRows, která se poté zobrazí ve zprávě.

Určení počtu sloupců

K určení počtu sloupců ve dvourozměrném poli používá VBA Excel funkci UBound . Tato funkce vrací index posledního prvku pole v uvedeném měření. Počet sloupců v poli lze určit pomocí funkce UBound s druhým parametrem rovným 2, což označuje měření sloupců ve dvourozměrném poli.

Dim array(1 To 3, 1 To 4) As VariantDim numColumns As LongnumColumns = UBound(array, 2)MsgBox "Количество столбцов: " & numColumns

V tomto příkladu je vytvořeno dvourozměrné pole s rozměry 3x4. Poté pomocí funkce UBound určíte počet sloupců v poli a výsledek se zobrazí v okně zprávy.

V příkladu se funkce UBound používá se dvěma parametry. První parametr označuje samotné pole a druhý parametr označuje měření, pro které je třeba určit index posledního prvku. V tomto případě je druhý parametr 2, což odpovídá měření sloupců.