Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Аннотация

В этой статье содержатся примеры процедур Microsoft Visual Basic для приложений, которые можно использовать для работы с несколькими типами массивов.

Дополнительная информация

Корпорация Майкрософт предоставляет примеры программирования только для иллюстраций без гарантий, выраженных или подразумеваемых. Это включает, помимо прочего, подразумеваемые гарантии товарной пригодности или пригодности для конкретной цели. В этой статье предполагается, что вы знакомы с демонстрируемым языком программирования и средствами, используемыми для создания и отладки процедур. Инженеры службы поддержки Майкрософт могут помочь объяснить функциональность конкретной процедуры, но они не будут изменять эти примеры, чтобы предоставить дополнительные функциональные возможности или создать процедуры в соответствии с вашими конкретными требованиями. ПРИМЕЧАНИЕ. В Visual Basic для приложений процедурах слова после апострофа (') являются комментариями.
 

Заполнение массива и его последующее копирование на лист

  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 и назовите его range1; выделите диапазон ячеек B1:B10 и назовите его range2.

  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" определяет размер массива.
 

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×