powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / For Each для строки (ExcelVBA)
4 сообщений из 4, страница 1 из 1
For Each для строки (ExcelVBA)
    #33749847
Фотография 100g
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, плз.
Возможно ли организовать цикл For Each для строк (а не ячеек) диапазона.

Подробнее:
Есть объект.
Значения полей экземпляров этого объекта хранятся на листе Ексель в диапазоне A1:C10 (одна строчка - один объект, столбец, соответственно, - свойство).
Создаю коллекцию объектов считывая зачения полей для каждого из диапазона. У объекта есть метод для присвоения значения его единственным трём полям SetPropertyMyObj(P1, P2, P3).

Начал я писать вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    Dim Emp As Employee
    Dim Peopls As Range
    Dim rng As Range
    
    Set MyEmps = New Collection
    Set Peopls = Worksheets("Лист1").Range("A2:C5")
    
    For Each rng In Peopls
        Set Emp = New Employee
        Call Emp.SetProperty(rng.Item( 1 ), rng.Item( 2 ), rng.Item( 3 ))
        MyEmps.Add Emp
    Next
Потом сообразил, что в Peopls ячейки, а не строки. Короче сообразил, что бред написал.
...
Рейтинг: 0 / 0
For Each для строки (ExcelVBA)
    #33749860
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
Dim r as Range, SomeRange as Range
Set SomeRange = ActiveSheet.Range(....)
For Each r in SomeRange.Rows
...
Рейтинг: 0 / 0
For Each для строки (ExcelVBA)
    #33749924
Фотография 100g
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Респектняк!
...
Рейтинг: 0 / 0
For Each для строки (ExcelVBA)
    #33749929
Фотография 100g
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл для общественности оставить исправленный код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    Dim Emp As Employee
    Dim Peopls As Range
    Dim rng As Range
    
    Set MyEmps = New Collection
    Set Peopls = Worksheets("Лист1").Range("A2:C5")
    
    For Each rng In Peopls.Rows
        Set Emp = New Employee
        Call Emp.SetProperty(rng.Cells( 1 ,  1 ), rng.Cells( 1 ,  2 ), rng.Cells( 1 ,  3 ))
        MyEmps.Add Emp
    Next
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / For Each для строки (ExcelVBA)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]