Таблица vba: руководство от базового до расширенного
Ключевые моменты
- Подумайте о таблице в таблице VBA как о мини-базе данных для хранения и организации данных (например: имя учащегося, предмет и оценки).
- Прежде чем использовать его, вы должны объявить массив; с его типом данных и количеством значений, которые вы хотите в нем хранить.
Если вы хотите работать с большими данными с помощью VBA, вам необходимо понимать таблицы и то, как их использовать в кодах VBA. В этом руководстве вы изучите все аспекты таблицы, а также увидите несколько примеров для использования. их.
Что такое таблица в VBA?
В VBA массив — это переменная, которая может хранить несколько значений . Вы можете получить доступ ко всем значениям в этом массиве одновременно или получить доступ к одному значению, указав его индексный номер, который является позицией этого значения в массиве. Представьте, что у вас назначена встреча с именем студента, его предметом и оценками.
Вы можете хранить всю эту информацию в таблице не только для одного студента, но и для сотен. Вот простой пример, поясняющий таблицу.

В приведенном выше примере у вас есть массив из десяти элементов (размер массива), и каждый элемент имеет определенную позицию (индекс).
Итак, если вы хотите использовать элемент, находящийся на восьмой позиции, вы должны обратиться к этому элементу, используя его порядковый номер.
Массив, который мы использовали в приведенном выше примере, представляет собой одномерный массив. Но позже в этом руководстве мы также узнаем о многомерных массивах.
Как объявить массив в VBA
Как я упоминал выше, типом переменной является массив, поэтому его необходимо объявить с помощью ключевых слов (Dim, Private, Public и Static). В отличие от обычной переменной, при объявлении массива после имени массива необходимо использовать пару круглых скобок.
Допустим, вы хотите объявить массив, который мы использовали в примере выше.
Шаги по объявлению массива.
- Сначала используйте ключевое слово «Dim», введите имя таблицы и введите круглые скобки.
- Далее вам нужно указать тип данных для массива. Если у вас не указан тип данных, VBA назначит соответствующий тип данных.
- После этого вам нужно определить количество элементов, которые вы хотите сохранить в массиве.
- В конечном итоге, чтобы присвоить значение элементу массива, вы должны использовать индексный номер элемента для его идентификации, а затем присвоить ему значение.
Полный код
Sub vba_array_example() Dim StudentsNames(10) As String StudentsNames(0) = "Waylon" StudentsNames(1) = "Morton" StudentsNames(2) = "Rudolph" StudentsNames(3) = "Georgene" StudentsNames(4) = "Billi" StudentsNames(5) = "Enid" StudentsNames(6) = "Genevieve" StudentsNames(7) = "Judi" StudentsNames(8) = "Madaline" StudentsNames(9) = "Elton" End Sub
Быстрые заметки
- В приведенном выше коде сначала используется оператор Dim, который определяет одномерный массив, который может хранить до 10 элементов и имеет строковый тип данных.
- После этого у вас есть 10 строк кода, которые определяют элементы массива от 0 до 9.
Таблица с различным типом данных
Если при объявлении массива вы не указали тип данных, VBA автоматически будет использовать другой тип данных, что приведет к небольшому увеличению использования памяти, и это увеличение использования памяти может замедлить производительность кода.
Поэтому лучше всего определить конкретный тип данных при объявлении массива, если только нет необходимости использовать вариантный тип данных.
Возврат информации из массива
Как я упоминал ранее, чтобы получить информацию из массива, вы можете использовать порядковый номер элемента, чтобы указать его положение. Например, если вы хотите вернуть восьмой элемент области, которую мы создали в предыдущем примере, код будет таким:

В приведенном выше коде вы ввели значение в ячейку A1, используя элемент массива 8.
Используйте опцию базы 1
Я уверен, что у вас сейчас возникает вопрос, почему мы начали список пунктов с нуля, а не с одного?
Ну, это не ошибка.
Когда языки программирования были впервые сконструированы , по некоторой небрежности эта структура превратилась в список элементов массива. В большинстве языков программирования можно встретить одинаковую структуру элементов списка.
Однако, в отличие от большинства других компьютерных языков, в VBA вы можете нормализовать работу индекса, то есть начать его с 1. Единственное, что вам нужно сделать, это добавить оператор, основанный на параметрах, в начале модуля, прежде чем объявлять индекс. массив.массив.
Теперь эта таблица будет выглядеть примерно так:

Поиск в таблице
Когда вы сохраняете значения в массиве, могут возникнуть случаи, когда вам потребуется выполнить поиск по массиву.
В этом случае вам необходимо знать методы, которые вы можете использовать. Теперь посмотрите на код ниже, который поможет вам понять, как искать значение в массиве.
Sub vba_array_search() 'this section declares an array and variables _ that you need to search within the array. Dim myArray(10) As Integer Dim i As Integer Dim varUserNumber As Variant Dim strMsg As String 'This part of the code adds 10 random numbers to _ the array and shows the result in the _ immediate window as well. For i = 1 To 10 myArray(i) = Int(Rnd * 10) Debug.Print myArray(i) Next i 'it is an input box that asks you the number that you want to find. Loopback: varUserNumber = InputBox _ ("Enter a number between 1 and 10 to search for:", _ "Linear Search Demonstrator") 'it's an IF statement that checks for the value that you _ have entered in the input box. If varUserNumber = "" Then End If Not IsNumeric(varUserNumber) Then GoTo Loopback If varUserNumber < 1 Or varUserNumber > 10 Then GoTo Loopback 'message to show if the value doesn't found. strMsg = "Your value, " & varUserNumber & _ ", was not found in the array." 'loop through the array and match each value with the _ the value you have entered in the input box. For i = 1 To UBound(myArray) If myArray(i) = varUserNumber Then strMsg = "Your value, " & varUserNumber & _ ", was found at position " & i & " in the array." Exit For End If Next i 'message box in the end MsgBox strMsg, vbOKOnly + vbInformation, "Linear Search Result" End Sub

- В первой части кода у вас есть переменные, которые вам нужно будет использовать позже в коде.
- После этого следующая часть — генерация случайных чисел с помощью RND, чтобы получить 10 значений для массива.
- Затем поле ввода для ввода значения, которое вы хотите найти в таблице.
- В этой части у вас есть код строки, которая будет использоваться в окне сообщения, если введенное вами значение не найдено.
- В этой части кода используется цикл для перебора каждого элемента массива и проверки, находится ли введенное вами значение в массиве или нет.
- Последняя часть кода отображает сообщение, указывающее, найдено значение или нет.