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.
Related posts
Jak usunąć puste linie w Excelu?
Jak korzystać z funkcji Speak Cells programu Excel
Jak wstawić arkusz programu Excel do dokumentu programu Word?
Jak korzystać z analizy warunkowej programu Excel
Jak naprawić wiersz w programie Excel
3 sposoby na podzielenie komórki w Excelu
10 porad i wskazówek dotyczących programu Excel na rok 2019
Jak korzystać z funkcji PMT w programie Excel?
Korzystanie z narzędzia wyszukiwania celów analizy warunkowej w programie Excel
Szybko przeliteruj liczby w Wordzie i Excelu
Jak usunąć linie siatki w programie Excel
Jak sortować według daty w programie Excel
Jak udostępnić plik Excel w celu łatwej współpracy?
Jak alfabetycznie w programie Excel
Jak usunąć zduplikowane wiersze w programie Excel?
4 sposoby użycia znacznika wyboru w programie Excel
Użyj klawiatury, aby zmienić wysokość wiersza i szerokość kolumny w programie Excel
Jak otworzyć Word i Excel w trybie awaryjnym
Jak utworzyć wiele połączonych list rozwijanych w programie Excel?
Arkusze Google a Microsoft Excel – jakie są różnice?