Podsumowanie
Ten artykuł zawiera przykładowe procedury Visual Basic for Applications firmy Microsoft, za pomocą których można pracować z kilkoma typami tablic.
Więcej informacji
Firma Microsoft udostępnia przykłady programowania tylko na ilustracje, bez gwarancji wyrażonej lub dorozumianej. Dotyczy to między innymi dorozumianych gwarancji przydatności handlowej lub przydatności do określonego celu. W tym artykule założono, że znasz język programowania, który jest prezentowany, oraz narzędzia służące do tworzenia i debugowania procedur. Inżynierowie pomocy technicznej firmy Microsoft mogą pomóc w objaśnieniu funkcjonalności określonej procedury, ale nie zmodyfikują tych przykładów w celu zapewnienia dodatkowych funkcji ani skonstruowania procedur spełniających określone wymagania. UWAGA: W Visual Basic for Applications procedurach wyrazy po apostrofu (') to komentarze.
Aby wypełnić tablicę, a następnie skopiować ją do arkusza
-
Otwórz nowy skoroszyt i wstaw arkusz modułu języka Visual Basic.
-
Wpisz poniższy kod w arkuszu modułu.
Sub Sheet_Fill_Array() Dim myarray As Variant myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) Range("a1:a10").Value = Application.Transpose(myarray) End Sub
-
Wybierz pozycję Arkusz1.
-
W menu Narzędzia wskaż polecenie Makro, a następnie kliknij pozycję Makra.
-
W oknie dialogowym Makro kliknij pozycję Sheet_Fill_Array, a następnie kliknij pozycję Uruchom.
Aby wziąć wartości z arkusza i wypełnić tablicę
-
Wpisz wartości w arkuszu Arkusz1 w komórkach A1:A10.
-
W arkuszu modułu języka Visual Basic wpisz następujący kod:
Sub from_sheet_make_array() Dim thisarray As Variant thisarray = Range("a1:a10").Value counter = 1 'looping structure to look at array While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Wybierz pozycję Arkusz1.
-
W menu Narzędzia wskaż polecenie Makro, a następnie kliknij pozycję Makra.
-
W oknie dialogowym Makro kliknij pozycję from_sheet_make_array, a następnie kliknij pozycję Uruchom.
Aby przekazać i odebrać tablicę
-
W arkuszu modułu wpisz następujący kod:
Sub pass_array() Dim thisarray As Variant thisarray = Selection.Value receive_array (thisarray) End Sub Sub receive_array(thisarray) counter = 1 While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Wybierz pozycję Arkusz1 i wyróżnij zakres A1:A10.
-
W menu Narzędzia wskaż polecenie Makro, a następnie kliknij pozycję Makra.
-
W oknie dialogowym Makro kliknij pozycję pass_array, a następnie kliknij pozycję Uruchom.
Aby porównać dwie tablice
-
Utwórz dwa nazwane zakresy w arkuszu Arkusz1. Nazwij jeden zakres1 i drugi zakres2.
Na przykład wyróżnij zakres komórek A1:A10 i nadaj im nazwę zakres1. wyróżnij zakres komórek B1:B10 i nadaj im nazwę zakres2. -
Wpisz poniższy kod w arkuszu modułu.
Sub compare_two_array() Dim thisarray As Variant Dim thatarray As Variant thisarray = Range("range1").Value thatarray = Range("range2").Value counter = 1 While counter <= UBound(thisarray) x = thisarray(counter, 1) y = thatarray(counter, 1) If x = y Then MsgBox "yes" Else MsgBox "no" End If counter = counter + 1 Wend End Sub
-
Wybierz pozycję Arkusz2.
-
W menu Narzędzia wskaż polecenie Makro, a następnie kliknij pozycję Makro.
-
W oknie dialogowym Makro kliknij pozycję compare_two_array, a następnie kliknij pozycję Uruchom.
Dla każdego porównania zostanie wyświetlone jedno okno komunikatu.
Aby wypełnić tablicę dynamiczną
-
W arkuszu modułu wpisz następujący kod:
Sub fill_array() Dim thisarray As Variant number_of_elements = 3 'number of elements in the array 'must redim below to set size ReDim thisarray(1 To number_of_elements) As Integer 'resizes this size of the array counter = 1 fillmeup = 7 For counter = 1 To number_of_elements thisarray(counter) = fillmeup Next counter counter = 1 'this loop shows what was filled in While counter <= UBound(thisarray) MsgBox thisarray(counter) counter = counter + 1 Wend End Sub
-
W menu Narzędzia wskaż polecenie Makro, a następnie kliknij pozycję Makra.
-
W oknie dialogowym Makro kliknij pozycję fill_array, a następnie kliknij pozycję Uruchom.
UWAGA: Zmiana zmiennej "number_of_elements" będzie określać rozmiar tablicy.