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

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

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

В VBA обязательно нужно понимать петлиПетлиЦикл VBA в Excel — это инструкция для запуска кода или многократного повторения действия.читать далее. Цикл позволяет выполнять одинаковые действия для многих ячеек или объектов в Excel. В сегодняшней статье мы сосредоточимся на механизме For Each Loop.

Синтаксис

For Each Loop может перебирать всю установленную коллекцию объектов или элементов. Группа — это не что иное, как «Все открытые рабочие книги», «Все рабочие листы в рабочей книге», «Все наборы фигур и диаграмм в рабочей книге».

Давайте посмотрим на синтаксис.

For Each Object In Collection
           
     What to Do?

Next Object

Например, у вас в рабочей книге 10 листов, и вы хотите скрыть все рабочие листы, кроме того, в котором вы находитесь. Можно ли скрыть вручную? Да, можно, а если таких листов 100? Разве это не утомительная и трудоемкая задача? Вы можете сделать это, используя для каждого цикла.

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

Вы можете использовать это изображение на своем веб-сайте, в шаблонах и т. д. Пожалуйста, предоставьте нам ссылку на авторствоКак предоставить атрибуцию?Ссылка на статью должна быть гиперссылкой
Например:
Источник: VBA для каждого цикла (wallstreetmojo.com)

Как использовать для каждого цикла в VBA? (Примеры)

Вы можете скачать этот шаблон VBA для каждого цикла здесь — VBA для каждого шаблона цикла

Пример № 1. Вставка одного и того же текста на всех листах

Мы увидим, как использовать FOR EACH в VBA сVBA сВ VBA оператор With используется для получения доступа ко всем свойствам и методам объекта.читать далее простой пример. Предположим, у вас есть 5 рабочих листов в рабочей книге, и вы хотите вставить слово «Привет» во все рабочие листы в ячейке A1.

VBA для каждого цикла Пример 1

Мы можем сделать это с FOR EACH LOOP. Здесь вам нужно помнить одну вещь: мы выполняем это действие на каждом рабочем листе, а не на одном и том же рабочем листе. Выполните следующие шаги, чтобы написать код VBAНапишите код VBAКод VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи.читать далее.

Шаг 1: Начать Excel макросExcel макросМакрос в Excel представляет собой серию инструкций в виде кода, который помогает автоматизировать ручные задачи, тем самым экономя время. Excel выполняет эти инструкции шаг за шагом для заданных данных. Например, его можно использовать для автоматизации повторяющихся задач, таких как суммирование, форматирование ячеек, копирование информации и т. д., тем самым быстро заменяя повторяющиеся операции несколькими щелчками мыши.
читать далее
.

Код:

Sub For_Each_Example1()

End Sub
Пример VBA для каждого цикла 1-1

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

Код:

Sub For_Each_Example1()

  Dim Ws As Worksheet

End Sub
Пример VBA для каждого цикла 1-2

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

Код:

Sub For_Each_Example1()

   Dim Ws As Worksheet

   For Each Ws In ActiveWorkbook.Worksheets

   Next Ws

End Sub
Пример 1-3

Шаг 4: Теперь напишите, что мы хотим сделать на каждом листе. На каждом листе нам нужно поместить слово «Привет» в ячейку A1.

Код:

Sub For_Each_Example1()

   Dim Ws As Worksheet

   For Each Ws In ActiveWorkbook.Worksheets
   Ws.Range("A1").Value = "Hello"
   Next Ws

End Sub
Пример 1-4

Шаг 5: Теперь запустите этот код вручную через опцию или нажмите клавишу быстрого доступа F5. Неважно, сколько у вас листов; он вставит слово «Привет» на все рабочие листы.

Пример VBA для каждого цикла 1-5

Пример №2 — Скрыть все листы

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

Шаг 1: Запустите макрос под своим именем.

Код:

Sub For_Each_Example2()

End Sub
VBA для каждого цикла Пример 2

Шаг 2: Объявите переменную как «Вт.»

Код:

Sub For_Each_Example2()

  Dim Ws As Worksheet
 
End Sub
Пример VBA для каждого цикла 2-1

Шаг 3: Теперь на каждом листе вам нужно скрыть лист.

Код:

Sub For_Each_Example2()

  Dim Ws As Worksheet

  For Each Ws In ActiveWorkbook.Worksheets
  Ws.Visible = xlSheetVeryHidden
  Next Ws

End Sub
Пример 2-2

Шаг 4: Но если вы запустите приведенный выше код, он попытается скрыть все листы, но Excel нужен хотя бы один видимый лист. Итак, нам нужно указать, какой лист не скрывать.

Код:

Sub For_Each_Example2()

  Dim Ws As Worksheet

  For Each Ws In ActiveWorkbook.Worksheets

  If Ws.Name <> "Main Sheet" Then
  Ws.Visible = xlSheetVeryHidden
  End If
  Next Ws

End Sub
Пример 2-3

В символ оператора <> означает не равно в VBA.

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

Это можно сделать с помощью Оператор ЕСЛИ в VBAОператор ЕСЛИ в VBAЕСЛИ ИЛИ — это не один оператор; это пара логических функций, используемых вместе в VBA, когда у нас есть более одного критерия для проверки, и когда мы используем оператор if, мы получаем истинный результат, если выполняется любой из критериев.читать далее. Напишите код в виде IF Ws.Name <> «Main Sheet» Затем скройте или, если оно равно имени листа «Main Sheet», то не скрывайте.

Шаг 5: Теперь запустите код с помощью клавиши F5 или вручную. Затем он скроет все рабочие листы, кроме одного с именем «Основной лист».

Пример VBA для каждого цикла 2-4

Пример № 3. Отобразить все листы

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

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

Код:

Sub For_Each_Example3()

Dim Ws As Worksheet

For Each Ws In ActiveWorkbook.Worksheets
Ws.Visible = xlSheetVisible
Next Ws

End Sub
VBA для каждого цикла Пример 3

Здесь нам не нужно условие IF, потому что мы показываем все листы. Если вы не хотите отображать какой-либо конкретный лист, вы можете использовать условие IF и указать имя листа.

Пример 3-1

Пример № 4. Защита и снятие защиты со всех листов

Защитить все листы: Мы можем защитить все листы в книге с помощью всего лишь фрагмента кода. Весь принцип тот же, только здесь нужно сделать вместо Ws. Видно, нам нужно поставить код Ws. Защитите и введите пароль.

Код:

Sub For_Each_Example4()

  Dim Ws As Worksheet

  For Each Ws In ActiveWorkbook.Worksheets
    Ws.Protect Password:="Excel@2019"
  Next Ws

End Sub
VBA для каждого цикла Пример 4

Снять защиту со всех листов: На аналогичной ноте используя VBA, мы также можем снять защиту со всех листовИспользуя VBA, мы также можем снять защиту со всех листовЛист снятия защиты VBA помогает снять защиту с защищенного листа. Защищенный лист защищает данные и информацию на листе, если кто-либо пытается редактировать, получать доступ, изменять или манипулировать им, обычно защищенным паролем. Вы можете снять защиту с листа, используя кодирование VBA.читать далее защищены в трудовой книжке. Нам нужно поставить слово Unprotect и пароль.

Код:

Sub For_Each_Example6()

  Dim Ws As Worksheet

  For Each Ws In ActiveWorkbook.Worksheets
  Ws.Unprotect Password:="Excel@2019"
  Next Ws

End Sub
Пример VBA для каждого цикла 4-1

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

  • Каждый предназначен для сбора объектов.
  • Он будет рассматривать все указанные объекты в указанной книге.
  • При объявлении переменной нам нужно, к какому объекту мы обращаемся — например, Worksheet, Workbook, Chart и т. д.

УЗНАТЬ БОЛЬШЕ >>

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.