Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.

Обобщена информация

Тази статия съдържа примерни процедури на Microsoft Visual Basic for Applications, които можете да използвате за работа с няколко типа масиви.

Повече информация

Microsoft предоставя примери за програмиране само за илюстрация, без гаранция, изразена или подразбираща се. Това включва, но не се ограничава до подразбиращите се гаранции за продаваемост или годност за определена цел. Тази статия предполага, че сте запознати с езика за програмиране, който се демонстрира, и с инструментите, които се използват за създаване и отстраняване на грешки в процедурите. Инженерите по поддръжка на 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. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

Благодарим ви за обратната връзка!

×