Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Статьи об Excel

МЕНЮ САЙТА
  • 1
  • 2
  • 3

КАТЕГОРИИ РАЗДЕЛА
Циклы [4]
Циклы VBA
Операторы ветвления [2]
Модули классов [2]
Создание, поля, свойства, события, когда использовать
Работа с приложениями и библиотеками [2]
Создание надстроек для ексель на .net, вызов компонентов .net

ОПРОСЫ
Какой версией Excel Вы пользуетесь?
Всего ответов: 35650
Главная » Статьи » Программирование на VBA » Циклы

Цикл For Each…Next
     У цикла For Each…Next нет счетчика как в цикле For…Next. Цикл выполняется фиксированное кол-во раз, соответствующее количеству элементов в массиве.

Цикл For Each…Next имеет следующий синтаксис:

For Each x In Array


//операторы//

Next [x]


x
– это переменная, которая перебирает все элементы в группе или массиве (в нашем случае это Array)

Array
– это массив или коллекция

Пример №1:
В нижеуказанном примере элемент x объявляется как Лист (Worksheet) и с помощью цикла по всем листам данной книги (ThisWorkbook.Worksheets), в ячейке А1 проставляется имя соответствующего листа.

Sub example1 ()
Dim x As Worksheet
For Each x In ThisWorkbook.Worksheets
x.Range("A1").Value = x.Name
Next x
End Sub 
Пример №2:
В следующем примере x объявляется как ячейка/диапазон (Range) и с помощью цикла и простого оператора ветвления If..Then..Else перебираются все заполненные ячейки на активном листе, и если ячейка со значением «1» найдена – она заливается красным цветом.

Sub example2 ()
Dim x As Range
For Each x In ActiveSheet.UsedRange.Cells
If x.Value = 1 Then
x.Interior.ColorIndex = 3
End If
Next x
End Sub 
Пример№3:
В данном примере x объявляется как Лист (Worksheet) и с помощью цикла все листы данной книги (ThisWorkbook.Worksheets) переименовываются на Sheet плюс случайное число.
Sub example3 ()
Dim x As Worksheet
 For Each x In ThisWorkbook.Worksheets
x.Name = "Sheet" & Round(Rnd * 1000)
Next x
End Sub 
Категория: Циклы | Добавил: LightZ (01.04.2012)
Просмотров: 10272 | Комментарии: 3 | Теги: ВБА, циклы vba, Цикл For Each…Next, NexT, For Each | Рейтинг: 5.0/5


Всего комментариев: 3
0   Спам
1    ratboy   (01.04.2012 23:01)
   Не указано как объявлять переменную для прохода по массиву

0   Спам
2    LightZ   (02.04.2012 21:40)
   а для "введение в VBA" по твоему нужно писать про массивы? думаю очень тяжело будет понять начинающему

+1   Спам
3    Серго   (07.04.2012 12:38)
   Спасибо!
Просто и понятно!
Гораздо доступнее чем в книгах!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!