Использование массивовUsing arrays

Можно объявить массив для работы с набором значений одного типа данных.You can declare an array to work with a set of values of the same data type. Массив представляет собой одиночную переменную с множеством ячеек для хранения значений, тогда как типовая переменная имеет только одну ячейку хранилища, в которой может храниться только одно значение.An array is a single variable with many compartments to store values, while a typical variable has only one storage compartment in which it can store only one value. Следует обращаться к массиву как одному целому, когда необходимо сослаться на все значения, хранящиеся в нем, или можно обращаться к отдельным элементам.Refer to the array as a whole when you want to refer to all the values it holds, or you can refer to its individual elements.

Например, чтобы хранить ежедневные расходы по каждому дню года, можно объявить одну переменную массива с 365 элементами, а не объявлять 365 переменных.For example, to store daily expenses for each day of the year, you can declare one array variable with 365 elements, rather than declaring 365 variables. Каждый элемент массива содержит одно значение.Each element in an array contains one value. В приведенном ниже операторе объявляется переменная массива с элементами 365.The following statement declares the array variable with 365 elements. По умолчанию массив индексируется, начиная с нуля, так что верхняя граница массива равна 364, а не 365.By default, an array is indexed beginning with zero, so the upper bound of the array is 364 rather than 365.

Dim curExpense(364) As Currency 

Чтобы установить значение отдельного элемента, указывается индекс этого элемента.To set the value of an individual element, you specify the element's index. В следующем примере каждому элементу массива присваивается начальное значение, равное 20.The following example assigns an initial value of 20 to each element in the array.

Sub FillArray() 
 Dim curExpense(364) As Currency 
 Dim intI As Integer 
 For intI = 0 to 364 
 curExpense(intI) = 20 
 Next 
End Sub

Изменение нижней границыChanging the lower bound

С помощью оператора Option Base в верхней части модуля можно изменить индекс по умолчанию для первого элемента с 0 на 1.You can use the Option Base statement at the top of a module to change the default index of the first element from 0 to 1. В следующем примере оператор Option Base изменяет индекс для первого элемента, а оператор Dim объявляет переменную массива с элементами 365.In the following example, the Option Base statement changes the index for the first element, and the Dim statement declares the array variable with 365 elements.

Option Base 1 
Dim curExpense(365) As Currency 

Можно также в явном виде установить нижнюю границу массива, используя выражение To, как показано в следующем примере.You can also explicitly set the lower bound of an array by using a To clause, as shown in the following example.

Dim curExpense(1 To 365) As Currency 
Dim strWeekday(7 To 13) As String 

Хранение значений Variant в массивахStoring Variant values in arrays

Существует два способа создания массивов значений Variant .There are two ways to create arrays of Variant values. Один способ — объявление массива с типом данных Variant, как показано в следующем примере:One way is to declare an array of Variant data type, as shown in the following example:

Dim varData(3) As Variant 
varData(0) = "Claudia Bendel" 
varData(1) = "4242 Maple Blvd" 
varData(2) = 38 
varData(3) = Format("06-09-1952", "General Date") 

Другой способ — присвоение массива, возвращаемого функцией Array, переменной Variant, как показано в следующем примере.The other way is to assign the array returned by the Array function to a Variant variable, as shown in the following example.

Dim varData As Variant 
varData = Array("Ron Bendel", "4242 Maple Blvd", 38, _ 
Format("06-09-1952", "General Date")) 

Независимо от способа создания массива элементы в массиве значений Variant идентифицируют по индексу.You identify the elements in an array of Variant values by index, no matter which technique you use to create the array. Например, в любом из предыдущих примеров может быть добавлен следующий оператор.For example, the following statement can be added to either of the preceding examples.

MsgBox "Data for " & varData(0) & " has been recorded." 

Использование многомерных массивовUsing multidimensional arrays

В Visual Basic допускается объявлять массивы с 60 размерностями, максимум.In Visual Basic, you can declare arrays with up to 60 dimensions. Например, следующий оператор объявляет 2-мерный массив 5 на 10.For example, the following statement declares a 2-dimensional, 5-by-10 array.

Dim sngMulti(1 To 5, 1 To 10) As Single 

Если рассматривать массив как матрицу, первый аргумент представляет строки, а второй аргумент представляет столбцы.If you think of the array as a matrix, the first argument represents the rows and the second argument represents the columns.

Используйте вложенные для... Next для обработки многомерных массивов.Use nested For...Next statements to process multidimensional arrays. Следующая процедура позволяет заполнить двумерный массив значениями Single.The following procedure fills a two-dimensional array with Single values.

Sub FillArrayMulti() 
 Dim intI As Integer, intJ As Integer 
 Dim sngMulti(1 To 5, 1 To 10) As Single 
 
 ' Fill array with values. 
 For intI = 1 To 5 
 For intJ = 1 To 10 
 sngMulti(intI, intJ) = intI * intJ 
 Debug.Print sngMulti(intI, intJ) 
 Next intJ 
 Next intI 
End Sub

См. такжеSee also

Поддержка и обратная связьSupport and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.