Co to jest tablica VBA w programie Excel i jak ją zaprogramować?

VBA jest częścią pakietu Microsoft Office(Microsoft Office) od wielu lat. Chociaż nie ma pełnej funkcjonalności i mocy pełnej aplikacji VB, VBA zapewnia użytkownikom pakietu Office(Office) elastyczność integracji produktów pakietu Office(Office) i automatyzacji pracy, którą w nich wykonujesz.

Jednym z najpotężniejszych narzędzi dostępnych w VBA jest możliwość załadowania całego zakresu danych do jednej zmiennej zwanej tablicą. Ładując dane w ten sposób, można na różne sposoby manipulować lub wykonywać obliczenia na tym zakresie danych.

Czym więc jest tablica VBA ? W tym artykule odpowiemy na to pytanie i pokażemy, jak używać go we własnym skrypcie VBA(your own VBA script) .

Co to jest macierz VBA?

Korzystanie z tablicy VBA w programie (VBA)Excel jest bardzo proste, ale zrozumienie koncepcji tablic może być nieco skomplikowane, jeśli nigdy jej nie używałeś.

Pomyśl(Think) o tablicy jak o pudełku z sekcjami wewnątrz. Tablica jednowymiarowa to pudełko z jedną linią przekrojów. Tablica dwuwymiarowa to pudełko z dwoma liniami sekcji.

Możesz umieścić dane w każdej sekcji tego „pudełka” w dowolnej kolejności.

Na początku skryptu VBA musisz zdefiniować to „pudełko”, definiując tablicę VBA . Tak więc, aby utworzyć tablicę, która może przechowywać jeden zestaw danych (tablicę jednowymiarową), należy napisać następujący wiersz.

Dim arrMyArray(1 To 6) As String

Później w programie możesz umieścić dane w dowolnej sekcji tej tablicy, odwołując się do sekcji wewnątrz nawiasów.

arrMyArray(1) = "Ryan Dube"

Możesz utworzyć dwuwymiarową tablicę za pomocą następującego wiersza.

Dim arrMyArray(1 To 6,1 to 2) As Integer

Pierwsza liczba reprezentuje wiersz, a druga to kolumna. Tak więc powyższa tablica może zawierać zakres z 6 wierszami i 2 kolumnami.

Możesz załadować dowolny element tej tablicy danymi w następujący sposób.

arrMyArray(1,2) = 3

To załaduje 3 do komórki B1.

Tablica może przechowywać dowolny typ danych jako zwykłą zmienną, taką jak ciągi, wartości logiczne, liczby całkowite, zmiennoprzecinkowe i inne.

Liczba w nawiasie również może być zmienną. Programiści często używają pętli(Loop) For do zliczania wszystkich sekcji tablicy i ładowania komórek danych z arkusza kalkulacyjnego do tablicy. Zobaczysz, jak to zrobić w dalszej części tego artykułu.

Jak zaprogramować macierz VBA w programie Excel

Przyjrzyjmy się prostemu programowi, w którym możesz chcieć załadować informacje z arkusza kalkulacyjnego do wielowymiarowej tablicy.

Jako przykład przyjrzyjmy się arkuszowi kalkulacyjnemu sprzedaży produktów, w którym chcesz wyciągnąć z niego imię i nazwisko przedstawiciela handlowego, przedmiot i całkowitą sprzedaż.

Zwróć uwagę, że w VBA , gdy odwołujesz się do wierszy lub kolumn, liczysz wiersze i kolumny,(rows and columns) zaczynając od lewego górnego rogu od 1. Tak więc kolumna rep to 3, kolumna pozycji to 4, a całkowita kolumna to 7.

Aby załadować te trzy kolumny we wszystkich 11 wierszach, musisz napisać następujący skrypt.

Dim arrMyArray(1 To 11, 1 To 3) As String
Dim i As Integer, j As Integer
For i = 2 To 12
For j = 1 To 3
arrMyArray(i-1, j) = Cells(i, j).Value
Next j
Next i

Zauważysz, że aby pominąć wiersz nagłówka, numer wiersza w pierwszym wyglądzie For musi zaczynać się od 2 zamiast 1. Oznacza to, że musisz odjąć 1 dla wartości wiersza tablicy podczas ładowania wartości komórki do tablicy za pomocą Cells (i, j).Value.

Gdzie wstawić skrypt VBA Array(Your VBA Array Script)

Aby umieścić program skryptu VBA w (VBA)Excelu(Excel) , musisz użyć edytora VBA . Możesz uzyskać do niego dostęp, wybierając menu Deweloper(Developer) i wybierając opcję Wyświetl kod(View Code) w sekcji Kontrolki(Controls) na wstążce.

Jeśli nie widzisz Dewelopera(Developer) w menu, musisz go dodać. Aby to zrobić, wybierz Plik(File) i Opcje(Options) , aby otworzyć okno Opcje programu Excel.

Zmień polecenia wyboru z listy rozwijanej na Wszystkie polecenia(All Commands) . Wybierz Deweloper(Developer) z lewego menu i wybierz przycisk Dodaj(Add) , aby przenieść go do okienka po prawej stronie. Zaznacz pole wyboru, aby je włączyć, i wybierz OK , aby zakończyć.

Po otwarciu okna Edytor kodu(Code Editor) upewnij się, że arkusz, w którym znajdują się Twoje dane, jest zaznaczony w lewym okienku. Wybierz Arkusz roboczy(Worksheet) w lewym menu rozwijanym i Aktywuj(Activate) po prawej stronie. Spowoduje to utworzenie nowego podprogramu o nazwie Worksheet_Activate ().

Ta funkcja będzie działać po każdym otwarciu pliku arkusza kalkulacyjnego. Wklej kod do okienka skryptu wewnątrz tego podprogramu.

Ten skrypt będzie działał przez 12 wierszy i załaduje nazwę przedstawiciela z kolumny 3, przedmiot z kolumny 4 i całkowitą sprzedaż z kolumny 7.

Po zakończeniu obu pętli For dwuwymiarowa tablica arrMyArray zawiera wszystkie określone dane z oryginalnego arkusza.

Manipulowanie tablicami w Excel VBA

Załóżmy, że chcesz zastosować 5% podatek od sprzedaży do wszystkich ostatecznych cen sprzedaży, a następnie zapisać wszystkie dane w nowym arkuszu.

Możesz to zrobić, dodając kolejną pętlę For po pierwszej z poleceniem zapisania wyników w nowym arkuszu.

For k = 2 To 12
Sheets("Sheet2").Cells(k, 1).Value = arrMyArray(k - 1, 1)
Sheets("Sheet2").Cells(k, 2).Value = arrMyArray(k - 1, 2)
Sheets("Sheet2").Cells(k, 3).Value = arrMyArray(k - 1, 3)
Sheets("Sheet2").Cells(k, 4).Value = arrMyArray(k - 1, 3) * 0.05
Next k

Spowoduje to „wyładowanie” całej tablicy do arkusza 2(Sheet2) , z dodatkowym wierszem zawierającym sumę pomnożoną przez 5% dla kwoty podatku.

Wynikowy arkusz będzie wyglądał tak.

Jak widać, tablice VBA w (VBA)Excelu(Excel) są niezwykle przydatne i tak wszechstronne, jak każda inna sztuczka Excela(any other Excel trick)

Powyższy przykład jest bardzo prostym zastosowaniem tablicy. Możesz tworzyć znacznie większe tablice i wykonywać sortowanie, uśrednianie lub wiele innych funkcji na przechowywanych w nich danych.

Jeśli chcesz być naprawdę kreatywny, możesz nawet utworzyć dwie tablice zawierające zakres komórek(containing a range of cells) z dwóch różnych arkuszy i wykonać obliczenia między elementami każdej tablicy.

Zastosowania ogranicza tylko Twoja wyobraźnia.



About the author

Jestem inżynierem komputerowym z ponad 10-letnim doświadczeniem w branży oprogramowania, w szczególności w Microsoft Office. Napisałem artykuły i samouczki na różne tematy związane z pakietem Office, w tym wskazówki, jak efektywniej korzystać z jego funkcji, sztuczki do opanowania typowych zadań biurowych i nie tylko. Moje umiejętności jako pisarza sprawiają, że jestem również doskonałym źródłem informacji dla innych osób, które chcą dowiedzieć się więcej o pakiecie Office lub po prostu potrzebują szybkiej porady.



Related posts