VBA UBound - Как использовать функцию Excel VBA UBound (примеры)

Содержание:

Anonim

Excel VBA UBound Функция

Как часто вы сталкиваетесь с ситуацией, когда вам нужно указать максимальную длину или верхнюю границу массива данных, работающих с Excel? В большинстве случаев, верно? И как вы находите то же самое? Может быть, вручную большую часть времени. Однако вы можете автоматизировать его и получить максимальную длину или верхнюю границу массива, используя функцию VBA с именем UBound.

Более того, у него есть самый красивый способ прохождения. Например, если вы используете цикл For в вашем массиве, вы определенно хотите зациклить все элементы массива. В этом случае было бы утомительно искать верхнюю границу вручную и упоминать ее в цикле. Это также уменьшит общность кода. Поэтому функция VBA UBound пригодится в таких случаях.

UBound обозначает верхнюю границу и дает верхнюю границу или максимальную длину массива в Excel VBA.

Формула для функции UBound в Excel VBA

Функция Excel VBA UBound имеет следующий синтаксис.

 UBound (Arrayname (, Dimension)) 

Где,

  • Arrayname: имя массива, который вы определили. Этот аргумент является обязательным / обязательным аргументом.
  • Размер: необязательный аргумент, который определяет размерность массива. Будь то одномерный, двухмерный или многомерный массив. По умолчанию он принимает одномерный массив, если он не указан.

Поскольку эта функция имеет только два аргумента, становится намного проще запомнить синтаксис этой функции.

Как использовать функцию Excel VBA UBound?

Мы научимся использовать функцию VBA UBound с несколькими примерами в Excel.

Вы можете скачать этот шаблон VBA UBound Excel здесь - Шаблон VBA UBound Excel

Пример № 1 - VBA UBound с одномерным массивом

Выполните следующие шаги, чтобы использовать функцию UBound в VBA.

Шаг 1. На вкладке «Разработчик» щелкните Visual Basic, чтобы открыть редактор VB.

Шаг 2: Нажмите « Вставить» и выберите вкладку « Модуль », чтобы добавить новый пустой модуль в VBE.

Шаг 3: В VBE начните писать макрос и определите имя переменной.

Код:

 Sub Onedm_Ubound () Dim IndiaCity (4) как конец строки 

Здесь переменная IndiaCity определяется 5 элементами. Тип переменной - это строка.

Примечание. Массив начинается с 0 (ноль). Следовательно, этот массив будет состоять из 5 элементов.

Шаг 4: Присвойте значения элементам массива.

Код:

 Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Мумбаи" IndiaCity (1) = "Бенгалуру" IndiaCity (2) = "Хайдарабад" IndiaCity (3) = "Дели" IndiaCity (4) = "Пуна "End Sub 

Здесь нулевой элемент имеет значение, назначенное как «Мумбаи», Первый элемент имеет значение, назначенное как «Бангалор», и так далее.

Шаг 5: Используйте функцию UBound вместе с MsgBox, чтобы получить верхнюю границу для массива.

Код:

 Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Мумбаи" IndiaCity (1) = "Бенгалуру" IndiaCity (2) = "Хайдарабад" IndiaCity (3) = "Дели" IndiaCity (4) = "Пуна "MsgBox" Верхний предел для массива: "& UBound (IndiaCity) End Sub 

Шаг 6: Запустите этот код, нажав F5 напрямую или вручную, нажав кнопку Run на левой верхней панели. Появится окно с сообщением « Верхняя граница для массива: 4 ».

Обратите внимание, что функция UBound не определяет верхний предел элементов Array. Он просто определяет максимальное количество элементов в массиве.

Пример №2 - VBA UBound с двумерным массивом

Выполните следующие шаги, чтобы использовать функцию UBound в VBA.

Шаг 1: Определите переменную, которая может содержать двумерные данные.

Код:

 Sub TwoDm_UBound () Dim Array_Test (от 0 до 6, от 1 до 8) как конец строки 

Шаг 2: Определите новую переменную Message и используйте ее в MsgBox. Эта переменная поможет нам печатать верхние границы обоих измерений одновременно.

Код:

 Sub TwoDm_UBound () Dim Array_Test (от 0 до 6, от 1 до 8) как строковое затемнение сообщения MsgBox Сообщение End Sub 

Шаг 3: Теперь попробуйте следующие операторы, которые позволяют системе печатать оба измерения массива в одном и том же окне сообщения.

Код:

 Sub TwoDm_UBound () Dim Array_Test (от 0 до 6, от 1 до 8) в виде сообщения String Dim Message = "Верхняя граница для первого измерения:" & UBound (Array_Test, 1) & vbCrLf Message = "Сообщение &" Верхняя граница для второго измерения : "& UBound (Array_Test, 2) & vbCrLf MsgBox Сообщение End Sub 

Два оператора, упомянутые в приведенном выше коде, позволяют системе печатать оба измерения в одном и том же окне сообщения. Первый оператор хранит значение верхней границы для первого измерения в переменной Message и заканчивает строку (vbCrLf). Второй оператор добавляет первое значение, назначенное переменной Message, и объединяет его с верхней границей второго измерения с всплывающим сообщением.

Поскольку vbCrLf используется в обоих операторах, он работает как перевод строки / возврата каретки здесь в обоих утверждениях.

Шаг 4: Запустите код, нажав F5 или кнопку Run, и посмотрите результат.

По аналогичным линиям мы можем перейти к нескольким измерениям и увидеть верхнюю границу для каждого из них.

Пример №3 - функция UBound для автоматического обновления данных в листе

Предположим, у вас есть набор данных, как показано на скриншоте ниже.

Эти данные обновляются, и вам нужно время от времени копировать обновленные данные. Теперь это действительно утомительная работа - всегда проверять наличие обновлений данных и затем копировать их на новый лист. Это также отнимает много времени. Можем ли мы попробовать автоматизировать его с помощью функции UBound в VBA? Посмотрим.

Выполните следующие шаги для автоматического обновления данных в листе с помощью функции VBA UBound:

Шаг 1: Определите переменную, создав макрос.

Код:

 Sub Ex3_UBound () Dim DataUpdate () как вариант End Sub 

Шаг 2: Активируйте рабочий лист с вашими данными. В этом случае имя листа - « Данные ».

Код:

 Sub Ex3_UBound () Dim DataUpdate () как листы вариантов («Данные»). Активировать End Sub 

Шаг 3: Назначьте диапазон переменной, которую мы только что создали. Для этой цели мы будем использовать ассортимент активированных листов.

Код:

 Sub Ex3_UBound () Dim DataUpdate () как листы вариантов («Данные»). Активировать DataUpdate = Range («A2», Range («A1»). End (xlDown) .End (xlToRight)) End Sub 

Шаг 4. Добавьте новый лист в Excel, где обновленные данные можно скопировать и вставить.

Код:

 Sub Ex3_UBound () Dim DataUpdate () как листы вариантов («Данные»). Активировать DataUpdate = Range («A2», Range («A1»). End (xlDown) .End (xlToRight)) Worksheets.Add End Sub 

Шаг 5: Теперь используйте следующую строку кода, которая позволяет автоматически копировать и вставлять данные из листа «Данные» во вновь созданный лист Excel.

Код:

 Sub Ex3_UBound () Dim DataUpdate () как листы вариантов («Данные»). Активировать DataUpdate = Range («A2», Range («A1»). End (xlDown) .End (xlToRight)) Рабочие листы. Добавить диапазон (ActiveCell, ActiveCell.Offset (UBound (DataUpdate, 1) - 1, UBound (DataUpdate, 2) - 1)) = DataUpdate End Sub 

Приведенный выше код сместит ячейки от листа «Данные» до верхней границы, которую можно получить с помощью используемой функции UBound, и назначит диапазон переменной DataUpdate.

Шаг 6: Запустите код, нажав F5 или кнопку Run, и посмотрите результат.

Как видите, в книгу Excel добавлен новый лист, в который автоматически копируются все данные из листа «Данные».

Это динамический код. Я имею в виду, что это динамически, хотя я добавляю по столбцам и по строкам, он будет автоматически скопирован на новый лист.

Шаг 7: Давайте добавим несколько строк и столбцов к данным и посмотрим, действительно ли это работает.

Шаг 8: Нажмите кнопку «Выполнить» еще раз после обновления таблицы данных и увидите магию.

Если вы видите, добавлен новый лист (цветной), а также добавлен новый столбец Age вместе с двумя новыми строками. Это означает, что независимо от того, что мы обновляем в главном файле (Данные), этот код автоматически скопирует все из этого и вставит его в новый лист.

То, что нужно запомнить

  • UBound дает верхнюю границу / максимальную длину массива, а не верхнюю границу от точек данных, присутствующих в массиве.
  • Массив всегда начинается с 0- й позиции параллельно большинству языков программирования, таких как C, C ++, Python.
  • Если ваш массив многомерный, вы должны также указать аргумент измерения, который принимает числовые целые значения, такие как 1, 2, 3 и т. Д. 1 означает одномерный, 2 - двухмерный и т. Д.

Рекомендуемые статьи

Это руководство по VBA UBound Function. Здесь мы обсудим, как использовать функцию Excel VBA UBound вместе с некоторыми практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Функция разделения VBA с примерами
  2. Прописная функция Excel
  3. VBA Match
  4. ПОТОЛОЧНАЯ функция в Excel
  5. Как использовать VBA Worksheets?