Оглавление
- Ключевые слова для работы с текстом
- Пример применения формулы массива
- Excel vba массив
- Двумерные массивы
- Объявление массива
- Синтаксис, параметры, значения
- Функции для работы со ссылками и массивами
- Чтение из диапазона ячеек в массив
- Передача массивов в подпрограммы
- Array Methods
- Erase
- Функции для работы с текстом
- Set Array Values
Ключевые слова для работы с текстом
Ключевое слово | Описание |
---|---|
& | Оператор & объединяет два выражения (результат = выражение1 & выражение2). Если выражение не является строкой, оно преобразуется в Variant (String), и результат возвращает значение Variant (String). Если оба выражения возвращают строку, результат возвращает значение String. |
vbCrLf | Константа vbCrLf сочетает в себе возврат каретки и перевод строки (Chr(13) + Chr(10)) и переносит последующий текст на новую строку (результат = строка1 & vbCrLf & строка2). |
vbNewLine | Константа vbNewLine в VBA Excel аналогична константе vbCrLf, также сочетает в себе возврат каретки и перевод строки (Chr(13) + Chr(10)) и переносит текст на новую строку (результат = строка1 & vbNewLine & строка2). |
Пример применения формулы массива
Наиболее простой задачей, которой можно проиллюстрировать мощь формулы массива, является простой товарный чек. То есть у нас есть наименование товаров, их количество и цена за единицу. На выходе мы должны получить общую сумму покупки.
Товарный чек
Как бы мы решали данную задачу стандартным образом?
Во-первых, мы бы получили итоговую сумму по каждому товару, перемножив количество товара на его цену.
Подсчет суммы заказа
Ну а затем просуммировали бы получение суммы, для получения итоговой. То есть нам бы потребовался дополнительный столбец для промежуточных вычислений.
Расчет общей суммы покупки
Ту же самую задачу можно решить с помощью простейшей формулы массива.
Нам нужно получить сумму, поэтому воспользуемся соответствующей функцией СУММ. А вот суммировать мы должны произведение цены товара на его количество, что мы и сделаем – выбираем диапазон значений из столица B и умножаем его на аналогичный диапазон значений столбца C.
Формула массива
Если сейчас нажать Enter, то появится ошибка.
Ошибка при нажатии Enter
Так как мы в формуле использовали диапазоны (массивы) данных, то и формула должна быть формулой массива. Для этого нужно нажать сочетание клавиш Ctrl + Shift + Enterи получим результат.
Формула массива
Что произошло и как работает формула массива? Это важно понять, так как в дальнейшем можно будет применять формулы массива для решения намного более заковыристых задач…
Итак, при вычислении формулы массива Excel произвел попарное умножение значений диапазонов B2:B5 и C2:C5. В результате получился массив значений который был просуммирован соответствующей функцией. Мы получили только одно значение итоговой суммы без вспомогательных вычислений.
Обратите внимание на формулу в строке формул. Она заключена в фигурные скобки, которые указывают нам, что мы имеем дело с формулой массива
Скобки формулы массива
Это не текстовые скобки, то есть нельзя их ввести с клавиатуры, чтобы сделать формулу формулой массива. Они появляются автоматически при нажатии сочетания клавиш Ctrl + Shift + Enter. Если после создания формулы массива вам необходимо ее отредактировать, то в конце необходимо вновь нажать сочетание клавиш, а не просто клавишу Enter.
Excel vba массив
Об’явление (описание) массива :
Прежде чем использовать массив его необходимо описать прим. * Так как массив является переменной, то действия с массивом во многом похожи на действия с обычными переменными. В массивах используются те же типы данных, что и в обычных переменных, причём массив должен содержать только однотипные данные, однако его ограничение можно обойти, если создать массив типа Variant.
прим. * На самом деле существует функция Array , которая позволяет создавать массив в ходе выполнения программы, без предварительного описания.
При об’явлении массива необходимо учитывать, что массивы делятся также на фиксированные и динамические. Фиксированный массив – это массив с заданным размером, который в свою очередь определяется количеством элементов. Динамический массив – это массив с переменным размером, т.е. количество элементов может изменяться во время выполнения программы.
Об’явление одномерного фиксированного массива :
Dim iString(3) As String
Об’явление двухмерного фиксированного массива :
Dim iData(5, 2) As Double
Об’явление динамического массива :
Dim iWhatIs() As Integer
При об’явлении (описании) динамического массива его размер не указывается. В процессе выполнения программы его размер может изменяться, причём неоднократно. Поэтому динамический массив применяют, если предполагается, что размер массива не будет постоянным.
ReDim – инструкция, которая позволяет изменять динамический массив.
Dim iWhatIs() As Integer
Примечание : Обратите внимание на то, что элементы массива, которые были созданы ранее, после использования ReDim не сохраняются. ReDim Preserve – инструкция, которая позволяет изменять динамический массив, с сохранением всех элементов массива
ReDim Preserve – инструкция, которая позволяет изменять динамический массив, с сохранением всех элементов массива.
ReDim Preserve iWhatIs(2) iWhatIs(0) = 1 iWhatIs(1) = 2 iWhatIs(2) = 3
ReDim Preserve iWhatIs(3) iWhatIs(3) = 4
Номер первого элемента и границы массива :
Номер первого элемента по умолчанию начинается с 0, для того чтобы изменить нумерацию используйте инструкцию Option Base или используйте явное указание номера первого элемента. |
Пример фиксированного массива, где нумерация элементов начинается с 1
Dim iString(3) As String
Dim iData(5, 2) As Double
Примечание : Инструкцию Option Base необходимо расположить в самом начале модуля VBA.
Пример об’явления фиксированных массивов с явным описанием нижней границы :
Dim iString(1 To 3) As String
Dim iData(1 To 5, 1 To 2) As Double
В обоих примерах мы об’явили (описали) два абсолютно одинаковых массива, но начать нумерацию массива можно с любого числа, но для этого Вы должны явно указать нижнюю границу массива.
Dim iString(5 To 10)
Dim iData(1 To 5, 2 To 5)
Примечание : Указывать тип данных содержащихся в массиве вовсе не обязательно. В случае отсутствия явного описания типа массива, он будет представлен как тип Variant. |
Макрофункции для работы с массивом :
Array – функция позволяет создавать массив в ходе выполнения программы, без предварительного описания.
iArray = Array(“ivan”, “john”, “maurizio”)
Erase – функция используется для удаления данных, хранимых в элементах массива. Массив фиксированного размера очищается полностью, но память, отведённая под его хранение остаётся за ним. Динамический же массив уничтожается полностью.
IsArray – функция проверяет, является ли переменная массивом. IsArray имеет всего один аргумент (переменную) и в зависимости от результатов проверки возвращает True – если переменная является массивом, или False – если нет.
Пример проверки динамического массива :
ReDim Preserve iArray(1 To 3) iArray(1) = “ivan” iArray(2) = “john” iArray(3) = “maurizio”
ReDim Preserve iArray(1 To 4) iArray(4) = “it’s very good man’s”
If IsArray(iArray) = True Then MsgBox “iArray – это массив”, , “” Else MsgBox “iArray – это не массив”, , “” End If
Пример проверки массива, созданного с помощью функции Array :
iArray = Array(“ivan”, “john”, “maurizio”)
If IsArray(iArray) = True Then MsgBox “iArray – это массив”, , “” Else MsgBox “iArray – это не массив”, , “” End If
LBound – функция определит нижнюю границу массива. UBound – функция определит верхнюю границу массива.
Dim iData(5 To 15, 1 To 100) As Double iLBound = LBound(iData) iUBound = UBound(iData)
MsgBox “Нижняя граница массива : ” & iLBound & Chr(10) _ & “Верхняя граница массива : ” & iUBound, , “”
Двумерные массивы
Массивы, на которые мы смотрели до сих пор, были одномерными. Это означает, что массивы представляют собой один список элементов.
Двумерный массив — это список списков. Если вы думаете об одной строке электронной таблицы как об одном измерении, то более одного столбца является двухмерным. На самом деле электронная таблица является эквивалентом двумерного массива. Он имеет два измерения — строки и столбцы.
Следует отметить одну маленькую вещь: Excel обрабатывает одномерный массив как строку, если вы записываете его в электронную таблицу. Другими словами, массив arr (от 1 до 5) эквивалентен arr (от 1 до 1, от 1 до 5) при записи значений в электронную таблицу.
На следующем рисунке показаны две группы данных. Первый — это одномерный массив, а второй — двухмерный.
Чтобы получить доступ к элементу в первом наборе данных (одномерном), все, что вам нужно сделать, это дать строку, например. 1,2, 3 или 4.
Для второго набора данных (двумерного) вам нужно указать строку И столбец. Таким образом, вы можете думать, что 1-мерное — это несколько столбцов, а одна строка и двухмерное — это несколько строк и несколько столбцов.
Примечание. В массиве может быть более двух измерений. Это редко требуется. Если вы решаете проблему с помощью 3+-мерного массива, то, вероятно, есть лучший способ сделать это.
Вы объявляете двумерный массив следующим образом:
Dim ArrayMarks(0 To 2, 0 To 3) As Long
В следующем примере создается случайное значение для каждого элемента в массиве и печатается значение в Immediate Window.
Public Sub TwoDimArray() ' Объявить двумерный массив Dim arrMarks(0 To 3, 0 To 2) As String ' Заполните массив текстом, состоящим из значений i и j Dim i As Long, j As Long For i = LBound(arrMarks) To UBound(arrMarks) For j = LBound(arrMarks, 2) To UBound(arrMarks, 2) arrMarks(i, j) = CStr(i) & ":" & CStr(j) Next j Next i ' Вывести значения в массиве в Immediate Window Debug.Print "i", "j", "Знаечние" For i = LBound(arrMarks) To UBound(arrMarks) For j = LBound(arrMarks, 2) To UBound(arrMarks, 2) Debug.Print i, j, arrMarks(i, j) Next j Next i End Sub
Видите, что мы используем второй цикл For внутри первого цикла, чтобы получить доступ ко всем элементам.
Результат примера выглядит следующим образом:
Этот макрос работает следующим образом:
- Входит в цикл i
- i установлен на 0
- цикл Enters j
- j установлен на 0
- j установлен в 1
- j установлен на 2
- Выход из цикла j
- i установлен в 1
- j установлен на 0
- j установлен в 1
- j установлен на 2
- И так до тех пор, пока i = 3 и j = 2
Заметьте, что LBound и UBound имеют второй аргумент 2. Это указывает, что это верхняя или нижняя граница второго измерения. Это начальное и конечное местоположение для j. Значение по умолчанию 1, поэтому нам не нужно указывать его для цикла i.
Использование цикла For Each
Использование For Each лучше использовать при чтении из массива.Давайте возьмем код сверху, который выписывает двумерный массив.
' Для цикла For необходимо два цикла Debug.Print "i", "j", "Значение" For i = LBound(arrMarks) To UBound(arrMarks) For j = LBound(arrMarks, 2) To UBound(arrMarks, 2) Debug.Print i, j, arrMarks(i, j) Next j Next i
Теперь давайте перепишем его, используя цикл For Each. Как видите, нам нужен только один цикл, и поэтому гораздо проще написать:
' Использование For Each требует только одного цикла Debug.Print "Значение" Dim mark As Variant For Each mark In arrMarks Debug.Print mark Next mark
Использование цикла For Each дает нам массив только в одном порядке — от LBound до UBound. В большинстве случаев это все, что вам нужно.
Объявление массива
Статический массив объявляется следующим образом
Как видите, при объявлении статического массива указывается его размер. Но проблема в том, что вы никогда не можете заранее знать, какой размер вам нужен. Каждый раз при запуске макроса у вас могут быть разные требования к размеру массива
Если вы не используете все элементы массива, ресурсы памяти расходуются в пустую. Если нужно добавить больше элементов можно использовать метод ReDim, но по сути это создает новый статический массив
Динамические массивы не имеют таких проблем. Размер массивы не указывается при объявлении. Поэтому его размер может расти и уменьшаться по мере необходимости
Динамический массив не создается, пока вы не используете оператор ReDim. Преимущество в том, что вы можете подождать, пока не узнаете количество элементов, прежде чем устанавливать размер массива. Со статическим массивом вы должны указать размер заранее.
Синтаксис, параметры, значения
Синтаксис функции InStr
Полный вариант:
1 | InStr(start,string1,string2,compare) |
Сокращенный вариант:
1 | InStr(string1,string2) |
Чаще всего в VBA Excel используется сокращенный вариант функции со значениями необязательных параметров по умолчанию.
Параметры функции InStr
Параметр | Описание | Значение по умолчанию |
---|---|---|
start | Необязательный аргумент.* Числовое выражение, которое задает начальную позицию для поиска. | 1 |
string1 | Обязательный аргумент. Строковое выражение, в котором выполняется поиск. | – |
string2 | Обязательный аргумент. Искомое строковое выражение. | – |
compare | Необязательный аргумент. Задает тип сравнения строк. | –1** |
* Если задан аргумент compare, аргумент start является обязательным.
** Если аргумент compare не указан, используется значение инструкции Option Compare, заданное на уровне модуля. Если инструкция Option Compare в начале модуля отсутствует, используется ее значение по умолчанию – 0 (двоичное сравнение).
Если параметр start или параметр compare содержит значение NULL, возникает ошибка.
Значения аргумента «compare»
Константа | Значение | Описание |
---|---|---|
vbUseCompareOption | -1 | Сравнение с помощью параметра инструкции Option Compare. |
vbBinaryCompare | Двоичное (бинарное) сравнение.* | |
vbTextCompare | 1 | Текстовое сравнение.* |
vbDatabaseCompare | 2 | Сравнение на основе сведений из базы данных. Только для Microsoft Access. |
* При двоичном сравнении учитывается регистр букв, при текстовом – не учитывается.
Значения функции InStr
Если | Возвращаемое значение |
---|---|
string2 найдена в string1 | Позиция первого найденного соответствия. |
string2 не найдена в string1 | |
string2 является пустой | start |
string2 равна Null | Null |
string1 является пустой | |
string1 равна Null | Null |
start больше длины string1 |
Функции для работы со ссылками и массивами
В Excel имеется ряд функций для обработки ссылок и массивов: вычисление номеров строки или столбца таблицы по имени ссылки, определение количества столбцов (строк) ссылки или массива, выбор значения по номеру индекса и т. д.
Таблица 4.10. Функции для работы со ссылками и массивами.
АДРЕС | Создает адрес ячейки в виде текста, используя номер строки и номер столбца. |
ВПР | Просматривает левый столбец массива в поисках определенного значения и возвращает значение из указанной ячейки. |
ВЫБОР | Использует номер индекса, чтобы выбрать и вернуть значение из списка аргументов-значений. |
ГИПЕРССЫЛКА | Создание ссылки, открывающей документ, находящийся на жестком диске, сервере сети или Internet. |
ГПР | Просматривает верхнюю строку массива в поисках определенного значения и возвращает значение из указанной ячейки. |
двссыл | Возвращает ссылку, заданную аргументом ссылка на ячейку. |
ИНДЕКС | Выбирает по индексу значение из ссылки или массива. |
ОБЛАСТИ | Возвращает количество областей в ссылке. Область – это интервал смежных ячеек или отдельная ячейка. |
ПОИСКПОЗ | Возвращает относительную позицию элемента массива. |
ПОЛУЧИТЬ.ДАННЫЕ. СВОДНОЙ.ТАБЛИЦЫ | Получение данных сводной таблицы |
ПРОСМОТР | Ищет значения в векторе или массиве. |
СМЕЩ | Возвращает ссылку заданной высоты и ширины, отстоящую от другой ссылки на заданное количество строки и столбцов. |
СТОЛБЕЦ | Возвращает номер столбца по заданной ссылке. |
СТРОКА | Возвращает номер строки, определяемой ссылкой. |
ТРАНШ | Возвращает транспонированный массив. |
ЧИСЛСТОЛБ | Возвращает количество столбцов в ссылке или массиве. |
ЧСТРОК | Возвращает количество строк в ссылке или массиве. |
Чтение из диапазона ячеек в массив
Если вы читали мою статью о ячейках и диапазонах, то вы знаете, что VBA имеет чрезвычайно эффективный способ чтения из диапазона ячеек в массив и наоборот.
Public Sub ReadToArray() ' Объявить динамический массив Dim StudentMarks As Variant ' Считать значения в массив из первой строки StudentMarks = Range("A1:Z1").Value ' Запишите значения обратно в третий ряд Range("A3:Z3").Value = StudentMarks End Sub
Динамический массив, созданный в этом примере, будет двухмерным массивом. Как видите, мы можем прочитать весь диапазон ячеек в массив всего за одну строку.
В следующем примере будут считаны примеры данных студента ниже из C3: E6 Лист1 и распечатаны в Immediate Window.
Public Sub ReadAndDisplay() ' Получить диапазон Dim rg As Range Set rg = ThisWorkbook.Worksheets("Лист1").Range("C3:E6") ' Создать динамический массив Dim StudentMarks As Variant ' Считать значения в массив из листа 1 StudentMarks = rg.Value ' Вывести значения массива Debug.Print "i", "j", "Значение" Dim i As Long, j As Long For i = LBound(StudentMarks) To UBound(StudentMarks) For j = LBound(StudentMarks, 2) To UBound(StudentMarks, 2) Debug.Print i, j, StudentMarks(i, j) Next j Next i End Sub
Как видите, первое измерение (доступное через i) массива — это строка, а второе — столбец. Чтобы продемонстрировать это, взглянем на значение 44 в Е4 данных образца. Это значение находится в строке 2 столбца 3 наших данных. Вы можете видеть, что 44 хранится в массиве в StudentMarks (2,3).
Передача массивов в подпрограммы
Массивы удобнее всего передавать в подпрограммы в виде параметра типа Variant .
Обратите внимание, что функции GetResult в качестве параметра передаются массивы. При чём, в первом случае это массив с типом элементов Long , а во втором — String
За счёт того, что внутри функции используются переменные типа Variant , то сначала функция нам возвращает сумму элементов массива arrIntegers , а во втором результат сложения (конкатенации) строк массива arrStrings . Кроме того, параметр parArray не описан как массив ( parArray As Variant ), но мы внутри функции GetResult ведём себя с ним, как с массивом ( For Each Element In parArray )! Это возможно, так как переменные типа Variant умеют определять, что им присваивается и вести себя далее в соответствии с тем, что они содержат. Если переменной parArray присвоили массив (через вызов функции — строки 17 и 18), то она себя будет вести как массив.
Array Methods
There are various inbuilt functions within VBScript which help the developers to handle arrays effectively. All the methods that are used in conjunction with arrays are listed below. Please click on the method name to know about it in detail.
Sr.No. | Function & Description |
---|---|
1 |
LBound
A Function, which returns an integer that corresponds to the smallest subscript of the given arrays. |
2 |
UBound
A Function, which returns an integer that corresponds to the largest subscript of the given arrays. |
3 |
Split
A Function, which returns an array that contains a specified number of values. Split based on a delimiter. |
4 |
Join
A Function, which returns a string that contains a specified number of substrings in an array. This is an exact opposite function of Split Method. |
5 |
Filter
A Function, which returns a zero based array that contains a subset of a string array based on a specific filter criteria. |
6 |
IsArray
A Function, which returns a boolean value that indicates whether or not the input variable is an array. |
7 |
Erase
A Function, which recovers the allocated memory for the array variables. |
Previous Page
Print Page
Next Page
Erase
Функция Erase используется для сброса значений массивов фиксированного размера и освобождения памяти динамических массивов.Он ведет себя в зависимости от типа массивов.
Синтаксис
- Фиксированный числовой массив, каждый элемент в массиве сбрасывается до нуля.
- Исправлен строковый массив, каждый элемент в массиве сбрасывается до нулевой длины «».
- Массив объектов, каждый элемент в массиве сбрасывается до специального значения .
пример
Добавьте кнопку и добавьте следующую функцию.
Private Sub Constant_demo_Click() Dim NumArray(3) NumArray(0) = "VBScript" NumArray(1) = 1.05 NumArray(2) = 25 NumArray(3) = #23/04/2013# Dim DynamicArray() ReDim DynamicArray(9) ' Allocate storage space. Erase NumArray ' Each element is reinitialized. Erase DynamicArray ' Free memory used by array. ' All values would be erased. msgbox("The value at Zeroth index of NumArray is " & NumArray(0)) msgbox("The value at First index of NumArray is " & NumArray(1)) msgbox("The value at Second index of NumArray is " & NumArray(2)) msgbox("The value at Third index of NumArray is " & NumArray(3)) End Sub
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Функция, которая восстанавливает выделенную память для переменных массива.
Предыдущие статьи
- Функции даты-времени в VBA. Работа с датой и временем — 25/03/2018 17:33
- Работа со строками в VBA: InStr, LCASE, UCase, Left, Right, Mid, LTrim, RTrim, Trim, Len, Replace, Space, StrComp, String, StrReverse — 25/03/2018 15:57
- Работа с циклами в VBA:loop, for each, for next — 17/03/2018 18:40
- Решения, условия, алгоритмы if, then, switch в VBA Excel — 10/03/2018 21:52
- Константы в VBA Excel — Const. Как присвоить значение константам — 10/03/2018 07:53
- Поле ввода в VBA Excel — InputBox. Синтаксис, параметры и описание — 10/03/2018 07:03
- Окно сообщения в VBA Excel — MsgBox — 09/03/2018 06:34
- Простые Макросы Excel, написать шаг за шагом — 10/02/2018 20:07
- Переменные в VBA, значения и типы — 26/06/2017 06:37
- Программирование vba, макросы в Word и Excel — 19/12/2015 16:18
Функции для работы с текстом
Основные функции для работы с текстом в VBA Excel:
Функция | Описание |
---|---|
Asc(строка) | Возвращает числовой код символа, соответствующий первому символу строки. Например: MsgBox Asc(“/Stop”). Ответ: 47, что соответствует символу «/». |
Chr(код символа) | Возвращает строковый символ по указанному коду. Например: MsgBox Chr(47). Ответ: «/». |
Format(Expression, , , ) | Преобразует число, дату, время в строку (тип данных Variant (String)), отформатированную в соответствии с инструкциями, включенными в выражение формата. Подробнее… |
InStr(, строка1, строка2, ) | Возвращает порядковый номер символа, соответствующий первому вхождению одной строки (строка2) в другую (строка1) с начала строки. Подробнее… |
InstrRev(строка1, строка2, ]) | Возвращает порядковый номер символа, соответствующий первому вхождению одной строки (строка2) в другую (строка1) с конца строки. |
Join(SourceArray,) | Возвращает строку, созданную путем объединения нескольких подстрок из массива. Подробнее… |
LCase(строка) | Преобразует буквенные символы строки в нижний регистр. |
Left(строка, длина) | Возвращает левую часть строки с заданным количеством символов. Подробнее… |
Len(строка) | Возвращает число символов, содержащихся в строке. |
LTrim(строка) | Возвращает строку без начальных пробелов (слева). Подробнее… |
Mid(строка, начало, ) | Возвращает часть строки с заданным количеством символов, начиная с указанного символа (по номеру). Подробнее… |
Replace(expression, find, replace, , , ) | Возвращает строку, полученную в результате замены одной подстроки в исходном строковом выражении другой подстрокой указанное количество раз. Подробнее… |
Right(строка, длина) | Возвращает правую часть строки с заданным количеством символов. Подробнее… |
RTrim(строка) | Возвращает строку без конечных пробелов (справа). Подробнее… |
Space(число) | Возвращает строку, состоящую из указанного числа пробелов. Подробнее… |
Split(Expression,,,) | Возвращает одномерный массив подстрок, извлеченных из указанной строки с разделителями. Подробнее… |
StrComp(строка1, строка2, ) | Возвращает числовое значение Variant (Integer), показывающее результат сравнения двух строк. Подробнее… |
StrConv(string, conversion) | Изменяет регистр символов исходной строки в соответствии с заданным параметром «conversion». Подробнее… |
String(число, символ) | Возвращает строку, состоящую из указанного числа символов. В выражении «символ» может быть указан кодом символа или строкой, первый символ которой будет использован в качестве параметра «символ». Подробнее… |
StrReverse(строка) | Возвращает строку с обратным порядком следования знаков по сравнению с исходной строкой. Подробнее… |
Trim(строка) | Возвращает строку без начальных (слева) и конечных (справа) пробелов. Подробнее… |
UCase(строка) | Преобразует буквенные символы строки в верхний регистр. |
WorksheetFunction.Trim(строка) | Функция рабочего листа, которая удаляет все лишние пробелы (начальные, конечные и внутренние), оставляя внутри строки одиночные пробелы. |
В таблице перечислены основные функции VBA Excel для работы с текстом. С полным списком всевозможных функций вы можете ознакомиться на сайте разработчика.
Set Array Values
Setting array values is very easy.
With a static array, you must define each position of the array, one at a time:
1 |
SubArrayExample() DimstrNames(1to4)asString strNames(1)=»Shelly» strNames(2)=»Steve» strNames(3)=»Neema» strNames(4)=»Jose» EndSub |
With a Variant Array you can define the entire array with one line (only practical for small arrays):
1 |
SubArrayExample_1Line() DimstrNames()AsVariant strNames=Array(«Shelly»,»Steve»,»Neema»,»Jose») EndSub |
If you attempt to define a value for an array location that does not exist, you will receive a Subscript Out of Range error:
1 | strNames(5)=»Shannon» |
In the ‘Assign Range to Array’ section Below we’ll show you how to use a loop to quickly assign large numbers of values to arrays.
Get Array Value
You can fetch array values the same way. In the example below we will write array values to cells:
1 |
Range(«A1»).Value=strNames(1) Range(«A2»).Value=strNames(2) Range(«A3»).Value=strNames(3) Range(«A4»).Value=strNames(4) |