Excel VBA для каждого цикла

Ключевое слово «Each» используется в VBA вместе с функцией «For». Это означает, что для каждого объекта в массиве или диапазоне повторите процесс в цикле for. По сути, мы не будем вводить диапазон шагов, то есть от 1 до 5 или от 1 до 10, вместо этого мы просто поместим его, как показано в синтаксисе ниже.

Синтаксис:

Для каждого имени объекта в диапазоне

Примечание. Вам необходимо иметь вкладку «Разработчик» на листе Excel.

Если вы не видите вкладку «Разработчик» в Excel, выполните следующие действия.

Шаг 1: Нажмите на опцию файла .

Шаг 2: появляется выпадающий список, нажмите на вкладку « Параметры ».

Шаг 3: После того, как вы нажмете «Параметры», появится диалоговое окно, как показано ниже, и выберите параметр « Настроить ленту» .

Шаг 4: Когда мы перетаскиваем параметры настройки ленты, мы находим параметр для разработчика, нам нужно установить этот флажок, который позволит нам использовать VBA в Excel.

Как использовать для каждого цикла в VBA?

Ниже приведены различные примеры использования For Each Loop в Excel с использованием кода VBA.

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

Excel VBA для каждого цикла - пример № 1

Мы возьмем простой пример For Each Loop в VBA. Предположим, что ниже представлен набор данных в VBA.

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

Шаг 1: Перейдите на вкладку «Разработчик», а затем нажмите на «Visual Basic» с левой стороны (первая опция), как показано ниже.

Как только вы нажмете на него, появится новое окно, как показано ниже.

Вы заметите, что он содержит две вкладки с левой стороны, «Лист1 (Лист1)» и «ThisWorkbook». Единственное отличие состоит в «Sheet1», когда вы хотите выполнить код только для этого конкретного листа, а в «ThisWorkbook» мы можем написать код и выполнить его, который можно применить ко всей книге Excel.

Шаг 2: Дважды щелкните «Лист1 (Лист1)», и вы увидите пустой экран, где нам нужно написать код. Дайте имя созданному подмножеству. Здесь мы дали имя как «Sub For_Each_Ex1 ()», как показано на скриншоте ниже.

Код:

 Sub For_Each_Ex1 () End Sub 

Это способ, которым мы создаем подмножество, и автоматически появляется «End Sub». Это по умолчанию особенность Excel. Если «End Sub» не появляется, код не будет выполнен и выдаст ошибку.

Шаг 3: Мы объявим переменные как диапазон.

Код:

 Sub For_Each_Ex1 () Тусклый заработок, Range1 в качестве Sub End End 

Здесь мы объявили две переменные, «Earn», которые мы будем использовать с For Each и «Range1» в качестве диапазона набора данных.

Шаг 4: Теперь мы исправим диапазон, то есть диапазон данных, с которыми нам нужно работать, используя ключевое слово «Set», как показано ниже.

Код:

 Sub For_Each_Ex1 () Приглушенный заработок, Range1 в качестве диапазона, установленного Range1 = Range ("A1: A10") End Sub 

Здесь мы зафиксировали «Range1» от ячеек диапазона A1 до A10, который является нашим набором данных.

Шаг 5: Теперь мы выполним цикл For с использованием каждого ключевого слова.

Код:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Set Range Range1 = Range ("A1: A10") для каждого заработка в Range1 End Sub 

Здесь для каждого значения в диапазоне Earn получит значение, назначенное, поскольку цикл For выполняется шаг за шагом.

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

Код:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Set Range Range1 = Range ("A1: A10") для каждого заработка в Range1 MsgBox Earn.Value End Sub 

Здесь «Earn.value» будет отображать значение в ячейке, т.е. начиная с первой ячейки в диапазоне.

Шаг 7: Теперь мы хотим выполнить следующее значение в заданном диапазоне ячеек, следовательно, мы должны использовать ключевое слово «Next» в коде. Это поможет продвинуться дальше в диапазоне и отобразить каждую сущность в диапазоне ячеек один за другим.

Код:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Set Range Range1 = Range ("A1: A10") для каждого заработка в Range1 MsgBox Earn.Value Next Earn End Sub 

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

В тот момент, когда исполняется строка кода «Next Earn», «Earn.value» будет присвоено следующее значение ячейки в диапазоне. Один за другим нажмите «ОК» и будет отображать каждое значение в диапазоне, пока диапазон значений не будет завершен.

Excel VBA для каждого цикла - пример № 2

Мы возьмем другой пример, в котором мы будем отображать имя каждого листа в файле Excel. Давайте предположим, что у нас есть листы, названные как в файле Excel:

Как мы заметили, в файле Excel содержится около 5 листов, и нам нужно отображать имя каждого из них по одному.

Мы напишем и выполним код в разделе «ThisWorkbook», как показано в красном поле ниже:

Дважды щелкните по нему, и когда появится окно и начните писать код в нем. Выполните следующие шаги, чтобы использовать для каждого цикла в Excel VBA:

Шаг 1: Мы напишем код, назначив имя подмножества, как показано ниже.

Код:

 Sub pagename () End Sub 

Шаг 2: Кроме того, мы можем напрямую начать писать оператор цикла «For», не объявляя переменную, как показано ниже.

Код:

 Sub pagename () для каждого шт в приложении. Конец Sub Sub 

Здесь «sht» - это наша переменная1, которая по умолчанию объявляется, а «Application.sheets» означает, что в файле рассматриваются все листы. Application.fucntion указывает, что мы можем добавить любую функцию или функцию или инструмент Excel, которые необходимо учитывать при выполнении кода.

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

Код:

 Sub pagename () Для каждого шт в приложении. Листы MsgBox "Имя листа:" & sht.Name End Sub 

Здесь выражение, которое мы хотели бы отобразить: «Имя листа:», а затем мы вводим амперсанд (&), который объединяет строку кода, а затем мы набираем «sht.Name», т.е. он будет выбирать лист, начиная с первого лист и отобразить имя.

Шаг 4: Теперь нам нужно повторить процесс отображения имени каждого листа. Следовательно, мы будем использовать «Next SHT», как показано ниже:

Код:

 Sub pagename () Для каждого sht в приложении. Листы MsgBox «Имя листа:» & sht.Name Next sht End Sub 

«Next sht» сообщит системе об этом, рассмотрит следующий лист и покажет его имя для дальнейшего выполнения.

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

После того, как вы нажмете «ОК», и код будет выполнен дальше, на экране появится имя следующего листа. Код будет выполняться до тех пор, пока на дисплее не появится больше листов.

Excel VBA для каждого цикла - пример № 3

Теперь мы возьмем пример, где мы должны суммировать все значения в данном наборе данных или массиве. Предположим, ниже приведен набор данных:

Выполните следующие шаги, чтобы использовать для каждого цикла в Excel VBA:

Шаг 1: Сначала объявите имя подмножества как eachadd (), как показано ниже.

Код:

 Sub eachadd () End Sub 

Шаг 2: Теперь мы объявим необходимые переменные, одну как целое число с именем «total», в котором мы продолжаем суммировать значения ячеек одно за другим и фиксируем диапазон ячеек, который содержит значения, которые мы должны добавить.

Код:

 Sub eachadd () Dim total As Integer Dim Range1 As Sub End Sub 

Шаг 3: После объявления переменной и диапазона нам нужно зафиксировать диапазон, который будет использоваться для цикла. Мы исправим этот диапазон от ячеек A1 до A10, используя ключевое слово «Set», как показано ниже:

Код:

 Sub eachadd () Dim total As Integer Dim Range1 As Set Set Range1 = Range ("A1: A10") End Sub 

Шаг 4: Теперь мы можем напрямую начать использовать функцию цикла For и напрямую объявить переменную. Здесь мы используем «add1» как переменную, и она будет по умолчанию объявлена ​​системой.

Код:

 Sub eachadd () Dim total As Integer Dim Range1 As Set Set Range1 = Range ("A1: A10") Для каждого add1 в Range1 End Sub 

Шаг 5: Добавление каждого объекта в диапазоне один за другим в переменную, объявленную как «общее». По умолчанию значение «итого» изначально равно нулю. И нам нужно добавить одно за другим значение ячеек, и снова эту сумму нужно снова добавить в «итого».

Код:

 Sub eachadd () Dim total As Integer Dim Range1 As Set Range Range1 = Range ("A1: A10") Для каждого add1 In Range1 total = total + add1.Value End Sub 

Вышеприведенный оператор выполняется справа налево, т.е. «add1.value» является первым значением ячейки и добавляет его к «total», равному нулю. Следовательно, сумма будет 0 + 1, что равно 1. И эта сумма как 1 будет идти в «итоговом» перед знаком «=». Это преимущество, так как формула выполняется слева направо.

Шаг 6: Теперь добавьте «Next add1», которое теперь поможет рассмотреть значение следующей ячейки диапазона данных и добавьте это значение в переменную «total», как показано ниже.

Код:

 Sub eachadd () Dim total As Integer Dim Range1 As Set Set Range1 = Range ("A1: A10") Для каждого add1 In Range1 total = total + add1.Value Next add1 End Sub 

Шаг 6: Нажмите «F8», чтобы запустить код для каждой строки. Также мы можем увидеть значение «итого» на скриншоте ниже.

Точно так же, пока диапазон ячеек не закончится, цикл будет продолжать выполнять эту сумму массива.

Шаг 7: Теперь мы будем использовать ключевое слово «Msgbox».

Код:

 Sub eachadd () Dim total As Integer Dim Range1 As Set Set Range1 = Range ("A1: A10") Для каждого add1 In Range1 total = total + add1.Value Next add1 MsgBox "Окончательное суммирование:" & total End Sub 

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

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

  • Ключевое слово «Each» используется в большинстве случаев только в случае использования функции VBA For Loop. Кроме того, он имеет ограниченное использование в Excel VBA.
  • Преимущество ключевого слова «Каждый» состоит только в том, что у нас нет деклараций шагов от 1 до x в выражении «Для».

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

Это руководство по VBA для каждого цикла. Здесь мы обсудим, как использовать For Each Loop в Excel с использованием кода VBA, а также с практическими примерами и загружаемым шаблоном Excel. Ниже приведены несколько полезных статей о Excel, связанных с VBA.

  1. VBA Do While Loop
  2. Переключение столбцов в Excel
  3. VBA Break для Loop
  4. Подсчет имен в Excel
  5. Как запустить код VBA?

Категория: