Tablice w VBA – dodatkowe informacje 2


1. Tablice VBA – informacje dla zaawansowanych

Zakładam, że jeśli czytasz ten artykuł to wcześniej zapoznałeś się z podstawowymi informacjami o tablicach VBA, o których pisałem w tym artykule: VBA Tablice. W artykule, który czytasz poznasz bardziej zaawansowane informacje o tablicach VBA. Są to m.in funkcje, którymi operujesz na tablicach, sposoby jak szybko odczytać dane z tablicy i jak je szybko do tablicy wgrać.

2. Funkcje Tablic LBound UBound IsArray

W przypadku tablic VBA możemy korzystać z funkcji odnoszących się do całej tablicy. Możemy m.in. za ich pomocą sprawdzić, czy nasza zmienna jest tablicą. Możemy także sprawdzić indeks górny i indeks dolny tablicy, by sprawdzić jej wielkość. By przetestować wyżej wymienione funkcje stwórzmy prostą tablicę i uzupełnijmy ją wartościami, pamiętając by nie wypełniać wszystkich elementów tablicy. Kod tworzący i wypełniający taką tablicę zamieszczam poniżej:

Kurs VBA - tablice funkcje IsArray, UBound, LBound

Kurs VBA – tablice funkcje IsArray, UBound, LBound

Jak widzisz stworzyliśmy tablicę 10-cio elementową o indeksach od 0 do 9. Jak widzisz funkcja Is Array pomaga nam stwierdzić, czy element jest tablicą. Funkcje LBound i Ubound zwracają indeksy, bez względu na to, czy elementy tablicy są wypełnione. Poniżej rozszerzony opis:

2.1 Rozszerzony opis funkcji tablic

IsArray – Funkcja zwraca wartość True, jeśli badany element jest tablicą.

LBound(tablica [,wymiar]) – Funkcja zwraca dolny indeks tablicy. Jeśli pracujemy na tablicach wielowymiarowych, drugi argument funkcji służy do podania wymiaru w tablicy, który chcemy zbadać. Z podstawowych informacji o tablicach VBA wiemy, że wymiary mogą mieć różną rozpiętość. Jeśli mamy do czynienia z tablicą wielowymiarową, a nie uzupełnimy argumentu określającego wymiar, funkcja zwróci indeks dla pierwszego wymiaru tablicy.

UBound(tablica [,wymiar]) – Funkcja zwraca górny indeks tablicy. Jeśli pracujemy na tablicach wielowymiarowych, drugi argument funkcji służy do podania wymiaru w tablicy, który chcemy zbadać. Jeśli mamy do czynienia z tablicą wielowymiarową, a nie uzupełnimy argumentu określającego wymiar, funkcja zwróci indeks dla pierwszego wymiaru tablicy.

2.2 Przykład LBound i UBound dla tablic wielowymiarowych

Poniżej krótki przykład zastosowania funkcji LBound i Ubound dla tablicy dwuwymiarowej i trójwymiarowej. Wymiar określamy liczbą od 1 do liczby wymiarów tablicy. Jeśli go nie określimy, funkcje VBA LBound i UBound zwrócą informacje o indeksach dla pierwszego wymiaru tablicy.

Kurs VBA - tablice funkcje UBound, LBound VBA Dla tablic wielowymiarowych

Kurs VBA – tablice funkcje UBound, LBound VBA Dla tablic wielowymiarowych

3. Tworzenie tablicy za pomocą funkcji Array

Tablice możesz tworzyć także za pomocą Funkcji VBA Array. W jaki sposób to zrobić? Stwórz zmienną o typie Variant. Następnie Przypisz do niej wartości w argumentach funkcji Array oddzielone przecinkami. Przykład poniżej:

W ten sposób zadeklarowana i uzupełniona tablica ma jedną wadę. Składa się z elementów o typie danych Variant, który nie jest typem wydajnym. Sam jednak sposób tworzenia tablicy jest na tyle szybki, że warto z niego korzystać.

Kurs VBA - Funkcja VBA Array

Kurs VBA – Funkcja VBA Array

4. Szybkie pobieranie danych z arkusza do tablicy VBA

W jaki sposób szybko pobrać dane do tablicy VBA? Dane do tablicy VBA możesz pobrać na wiele sposobów. Możemy oczywiście wykorzystać od tego pętlę, która pobierze wszystkie elementy arkusza po kolei, jednak nie jest to szybkie rozwiązanie. Najłatwiejszym sposobem, by wprowadzić dane z arkusza Excel do tablicy dwuwymiarowej (bo arkusz też ma dwa wymiary) jest odniesienie się do zakresu. W celu ćwiczenia w załączonym do tego artykułu pliku dodałem arkusz zawierający dane, które tworzyliśmy przy pomocy pętli Do Loop w jednym z poprzednich rozdziałów kursu VBA Excel. Poniższy przykład wprowadza te właśnie dane do tablicy. Naszym zadaniem jest wprowadzenie do tablicy danych i pokazanie danych z drugiego rekordu tabeli. Nagłówki przy imporcie danych z arkusza do tablicy pomijamy.

Kurs VBA - Pobieranie danych z arkusza do tablicy VBA Excel

Kurs VBA – Pobieranie danych z arkusza do tablicy VBA Excel

Artykuł jest częścią kursu Vba Excel. Całość kursu znajdziesz pod tym linkiem: Kurs VBA. Poniżej zamieszczam plik z kodem programu:

Kurs_excel_vba_tablice_dodatkowe_informacje.xlsm


Dodaj komentarz

Twój adres email nie zostanie opublikowany.

2 komentarzy do “Tablice w VBA – dodatkowe informacje

    • Tomasz Kenig Autor wpisu

      Cześć,
      nie , nie jest to to samo. O kolekcjach napiszę jeszcze w tym miesiącu. Kolekcje VBA mogą przechowywać dane różnych typów. Tablice zawierają jeden typ danych.