Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

Загальні відомості

У цій статті наведено зразки процедур Microsoft Visual Basic for Applications, які можна використовувати для роботи з масивами кількох типів.

Додаткові відомості

Корпорація Майкрософт надає приклади програмування лише для ілюстрації без гарантії, вираженої або неявних. Це включає, але не обмежується, неявні гарантії придатності до продажу або придатності для певної мети. У цій статті припускається, що ви знайомі з мовою програмування, яка демонструється, і з інструментами, які використовуються для створення і налагодження процедур. Спеціалісти служби підтримки Microsoft можуть допомогти пояснити функціональність певної процедури, але вони не змінюватимуть ці приклади, щоб надавати додаткові функції або конструювати процедури відповідно до ваших конкретних вимог. ПРИМІТКА. У процедурах Visual Basic for Applications слова після апострофа (') – це примітки.
 

Заповнення масиву та його копіювання на аркуш

  1. Відкрийте нову книгу та вставте аркуш модуля Visual Basic.

  2. Введіть наведений нижче код на аркуші модулів.

    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
    
  3. Виберіть Аркуш1.

  4. У меню Знаряддя наведіть вказівник миші на пункт Макрос і виберіть пункт Макроси.

  5. У діалоговому вікні Макрос натисніть кнопку Sheet_Fill_Array, а потім натисніть кнопку Виконати.

Як взяти значення з аркуша та заповнити масив

  1. Введіть значення на Аркуші1 у клітинках A1:A10.

  2. На аркуші модулів 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
    
  3. Виберіть Аркуш1.

  4. У меню Знаряддя наведіть вказівник миші на пункт Макрос і виберіть пункт Макроси.

  5. У діалоговому вікні Макрос натисніть кнопку from_sheet_make_array, а потім натисніть кнопку Виконати.

Щоб передати й отримати масив

  1. На аркуші модулів введіть такий код:

    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
    
  2. Виберіть Аркуш1 і виділіть діапазон A1:A10.

  3. У меню Знаряддя наведіть вказівник миші на пункт Макрос і виберіть пункт Макроси.

  4. У діалоговому вікні Макрос натисніть кнопку pass_array, а потім натисніть кнопку Виконати.

Порівняння двох масивів

  1. Створіть два іменованих діапазони на Аркуші1. Назвіть один діапазон1 і інший діапазон2.

    Наприклад, виділіть діапазон клітинок A1:A10 та назвіть його діапазон1; виділіть діапазон клітинок B1:B10 та назвіть його діапазон2.

  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
    
  3. Виберіть Аркуш2.

  4. У меню Знаряддя наведіть вказівник миші на пункт Макрос і виберіть пункт Макрос.

  5. У діалоговому вікні Макрос натисніть кнопку compare_two_array, а потім натисніть кнопку Виконати.

    Ви побачите одне вікно повідомлення для кожного порівняння.

Заповнення динамічного масиву

  1. На аркуші модулів введіть такий код:

    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
    
  2. У меню Знаряддя наведіть вказівник миші на пункт Макрос і виберіть пункт Макроси.

  3. У діалоговому вікні Макрос натисніть кнопку fill_array, а потім натисніть кнопку Виконати.

ПРИМІТКА. Змінення змінної "number_of_elements" визначить розмір масиву.
 

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×