Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / For Each для строки (ExcelVBA) / 4 сообщений из 4, страница 1 из 1
24.05.2006, 21:12:50
    #33749847
100g
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
For Each для строки (ExcelVBA)
Подскажите, плз.
Возможно ли организовать цикл 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
24.05.2006, 21:27:33
    #33749860
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
For Each для строки (ExcelVBA)
Код: plaintext
1.
2.
3.
Dim r as Range, SomeRange as Range
Set SomeRange = ActiveSheet.Range(....)
For Each r in SomeRange.Rows
...
Рейтинг: 0 / 0
24.05.2006, 22:55:42
    #33749924
100g
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
For Each для строки (ExcelVBA)
Респектняк!
...
Рейтинг: 0 / 0
24.05.2006, 23:02:14
    #33749929
100g
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
For Each для строки (ExcelVBA)
Забыл для общественности оставить исправленный код:
Код: 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
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / For Each для строки (ExcelVBA) / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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