Загальні відомості
У цій статті наведено зразки процедур Microsoft Visual Basic for Applications, які можна використовувати для роботи з масивами кількох типів.
Додаткові відомості
Корпорація Майкрософт надає приклади програмування лише для ілюстрації без гарантії, вираженої або неявних. Це включає, але не обмежується, неявні гарантії придатності до продажу або придатності для певної мети. У цій статті припускається, що ви знайомі з мовою програмування, яка демонструється, і з інструментами, які використовуються для створення і налагодження процедур. Спеціалісти служби підтримки Microsoft можуть допомогти пояснити функціональність певної процедури, але вони не змінюватимуть ці приклади, щоб надавати додаткові функції або конструювати процедури відповідно до ваших конкретних вимог. ПРИМІТКА. У процедурах Visual Basic for Applications слова після апострофа (') – це примітки.
Заповнення масиву та його копіювання на аркуш
-
Відкрийте нову книгу та вставте аркуш модуля Visual Basic.
-
Введіть наведений нижче код на аркуші модулів.
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
-
Виберіть Аркуш1.
-
У меню Знаряддя наведіть вказівник миші на пункт Макрос і виберіть пункт Макроси.
-
У діалоговому вікні Макрос натисніть кнопку Sheet_Fill_Array, а потім натисніть кнопку Виконати.
Як взяти значення з аркуша та заповнити масив
-
Введіть значення на Аркуші1 у клітинках A1:A10.
-
На аркуші модулів Visual Basic введіть такий код:
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
-
Виберіть Аркуш1.
-
У меню Знаряддя наведіть вказівник миші на пункт Макрос і виберіть пункт Макроси.
-
У діалоговому вікні Макрос натисніть кнопку from_sheet_make_array, а потім натисніть кнопку Виконати.
Щоб передати й отримати масив
-
На аркуші модулів введіть такий код:
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
-
Виберіть Аркуш1 і виділіть діапазон A1:A10.
-
У меню Знаряддя наведіть вказівник миші на пункт Макрос і виберіть пункт Макроси.
-
У діалоговому вікні Макрос натисніть кнопку pass_array, а потім натисніть кнопку Виконати.
Порівняння двох масивів
-
Створіть два іменованих діапазони на Аркуші1. Назвіть один діапазон1 і інший діапазон2.
Наприклад, виділіть діапазон клітинок A1:A10 та назвіть його діапазон1; виділіть діапазон клітинок B1:B10 та назвіть його діапазон2. -
Введіть наведений нижче код на аркуші модулів.
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
-
Виберіть Аркуш2.
-
У меню Знаряддя наведіть вказівник миші на пункт Макрос і виберіть пункт Макрос.
-
У діалоговому вікні Макрос натисніть кнопку compare_two_array, а потім натисніть кнопку Виконати.
Ви побачите одне вікно повідомлення для кожного порівняння.
Заповнення динамічного масиву
-
На аркуші модулів введіть такий код:
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
-
У меню Знаряддя наведіть вказівник миші на пункт Макрос і виберіть пункт Макроси.
-
У діалоговому вікні Макрос натисніть кнопку fill_array, а потім натисніть кнопку Виконати.
ПРИМІТКА. Змінення змінної "number_of_elements" визначить розмір масиву.