Excel VBA ReDim

Мы можем настроить количество элементов в массиве через VBA Redim. Redim - это не функция, это программа динамического выделения памяти через оператор Redim. Когда мы используем Redim, для хранения данных сохраняется определенный объем памяти.

Как использовать VBA ReDim Statement?

Мы обсудим, как использовать VBA ReDim Statement, используя несколько примеров.

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

VBA ReDim - Пример № 1

Когда мы используем Dim для массива, мы не можем изменить значение хранилища данных в массиве. Но когда мы используем Redim, мы можем изменить сохраненное значение в массиве. Этот процесс изменения массива называется изменением размеров массива.

Предположим, у нас есть массив A со значением 4 ячеек, тогда он будет определен с помощью;

  • Dim A (3) как двойной

Как мы видим, все ячейки имеют «0» в качестве сохраненного значения. Теперь предположим, что если мы Redim the Dim A с 3 ячейками данных и сохраним в нем значение, то это будет выглядеть так, как показано ниже.

  • ReDim B (2) как двойной

B (0) = 1; B (1) = 3, B (2) = -6

Это будет выглядеть как;

Теперь, если мы хотим добавить в него ячейки, мы можем это сделать. Затем он автоматически назначит «0» этим ячейкам. Теперь для реализации ReDim нажмите Alt + F11, чтобы открыть окно VBA. А из меню «Вставка» выберите «Модуль», чтобы открыть новое окно, как показано ниже.

Теперь откройте Подкатегорию и добавьте любое имя. Поскольку мы используем ReDim, мы назвали UsingReDim .

Код:

 Sub UsingReDim () End Sub 

Теперь перед определением ReDim сначала определите любое целое число. Здесь мы определили его как «A» с длиной массива 3. И сохраняем некоторые значения в созданном массиве из 3 ячеек, как показано ниже.

Код:

 Sub Используя ReDim () Dim A (2) As Integer ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 End Sub 

Теперь, печатая значения, хранящиеся в Integer A, нам нужно создать окно сообщения с помощью команды MsgBox, как показано ниже.

Код:

 Sub Используя ReDim () Dim A (2) как целое число A (0) = 1 A (1) = 2 A (2) = 3 MsgBox A (0) MsgBox A (1) MsgBox A (2) End Sub 

Теперь запустите код, нажав на кнопку воспроизведения или клавишу F5, как показано ниже.

Теперь мы будем использовать ReDim, и он будет хранить больше, чем определенные символы в массиве. Для этого используйте ReDim для определенного целого числа A. Во-первых, мы удалим определенное количество ячеек из Dim. Использование функции Redim заключается в следующем:

  • ReDim A (2) используется для массива ячеек A (0), A (1), A (2) .
  • ReDim A (4) используется для клеток A (0), A (1), A (2), A (3), A (4) с двумя дополнительными фиктивными клетками.

Код:

 Sub Используя ReDim () Dim A () как целое число ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) End Sub 

После этого запустите полный код, нажав кнопку воспроизведения или клавишу F5. Как только мы запустим полный код, мы получим 3 окна сообщений, но с сообщением, содержащим только «0», как показано ниже.

Это потому, что ReDim на самом деле имеет только 3 значения, но не содержит хранимых значений в определенных целых числах. Использование только Redim не сохраняет никаких значений и переносит в них ранее сохраненные значения. Чтобы применить то же самое, нам нужно сохранить значения определенного целого числа A с помощью ReDim. Используя Preserve в VBA, мы можем сохранить значение в ReDim. Для этого мы добавим Preserve после ReDim в коде VBA, показанном ниже.

Код:

 Sub Используя ReDim () Dim A () в качестве целого числа ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim Сохранить A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) End Sub 

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

Теперь вам должно быть интересно, почему мы использовали A (4) с ReDim Preserve?

Ниже приводится объяснение этого. Где 1- я, 2- я и 3- я позиции массива заняты значениями 1, 2 и 3 соответственно. И 4- я и 5- я позиции, которые представляют счет 3 и 4 массива А, являются фиктивными ячейками. Это означает, что если нет данных, сохраненных в 4- й и 5- й позиции, тогда автоматически будет учитываться значение «0», и сообщение не будет заполнено.

Если мы попытаемся увидеть значения, хранящиеся в 4- й и 5- й позиции массива ReDim, то нам нужно также вставить окно сообщения для этих 2 позиций.

Код:

 Sub UsingReDim () Dim A () как целое число ReDim A (3) A (0) = 1 A (1) = 2 A (2) = 3 ReDim Сохранить A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) MsgBox A (3) MsgBox A (4) End Sub 

Как мы добавили сообщение в штучной упаковке на 4- й и 5- й позиции без сохранения какого-либо значения. Теперь запустите код снова.

Как мы видим на скриншотах выше, для 4- й и 5- й позиции мы получили окна сообщений, но значение отображается как «0». Что означает, объясняет приведенное выше утверждение. Если значение не определено, ReDim Preserve автоматически учитывает и заполняет «0» в остальных ячейках.

VBA ReDim - Пример № 2

Теперь давайте посмотрим, как использовать ReDim Statement с String вместо Integer.

Код:

 Sub UsingReDim () Dim A () As String ReDim A (3) A (0) = "Клиент" A (1) = "Продукт" A (2) = "Код продукта" ReDim Сохранить A (4) MsgBox A (0) ) MsgBox A (1) MsgBox A (2) MsgBox A (3) MsgBox A (4) End Sub 

После этого запустите полный код с помощью клавиши F5 или вручную, как показано ниже.

Как мы можем видеть на скриншоте выше, мы получаем все определенные и сохраненные символы в первых 3 окнах сообщений. А в 4- м и 5- м боксе мы ничего не получаем. Поскольку ReDim не хранит значение, если оно не определено. Для целых чисел он будет отображаться как «0», но со строкой он будет показывать только пустые сообщения.

Плюсы Excel VBA ReDim

  • VBA ReDim позволяет нам переопределить значения измерений.
  • Мы можем определить столько, сколько размерных массивов без или нулевое значение, и сохранить значения позже.
  • Значение ReDim Re-Dimensioning позволяет использовать любое количество массивов данных без увеличения размера хранимых данных.

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

  • Не забывайте добавлять Preserve после ReDim в VBA, чтобы в нем сохранялись ранее использованные измерения.
  • Если измерение определено как String, то любая позиция, оставленная пустой при назначении значений, будет содержать пустое значение, и как только мы распечатаем это с помощью окна сообщения, появится также пустое окно сообщения.
  • Если мы определили измерения Dim с 3 символами или значениями ячеек, то в ReDim мы можем использовать любое количество измерений, переносящих уже определенные и сохраненные значения в Dim.

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

Это было руководство по Excel VBA ReDim. Здесь мы обсудили, как использовать VBA ReDim Statement для удаления пробелов, а также некоторые практические примеры и загружаемый шаблон Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Как использовать VBA On Error Statement?
  2. Числовой формат в VBA
  3. Как использовать функцию поиска VBA?
  4. Функция VBA TRIM

Категория: