|
Как получить строку-родитель для текущей строки в файле Excel с группировками?
| ☑ |
0
SerF_2011
30.05.12
✎
21:12
|
Собственно, сабж.
Обхожу экселевский файл в цикле, в файле иерархическая структура многоуровневая с "плюсиками", нужно узнать какая строка является строкой-родителем для текущей.
Искал в темах форума, нашел как определить уровень и принадлежность група/не группа. Но как обратиться к строке-родителю???
|
|
1
SerF_2011
30.05.12
✎
21:39
|
Кто направит, кто поможет?
|
|
2
SerF_2011
30.05.12
✎
22:57
|
up
|
|
3
SerF_2011
31.05.12
✎
08:29
|
up
|
|
4
smaharbA
31.05.12
✎
08:30
|
ф1
|
|
5
IamAlexy
31.05.12
✎
08:30
|
(0) пойти с другой стороны?
загрузить все в дерево и далее уже обрабатывать дерево в 1С ?
|
|
6
Робинзон Крузо
31.05.12
✎
08:32
|
(0) Попробуй задать этот вопрос на специализированных на VB и VBA форумах.
|
|
7
SerF_2011
02.06.12
✎
23:07
|
Вобщем все решилось благополучно.
Может кому то пригодится.
В цикле перебора строк в заранее определенном массиве под индексом текущего уровня сохранял номер текущей строки. Находясь на уровне N, получал номер строки родителя из Массив[N-1]. Дальше обращался к строке-родителю по номеру и получал нужную информацию.
Есть только косяк с группировками - когда в одном файле несколько группировок 1го уровня, метод, возвращающий текущий уровень, начинает тупить. Чтобы это обойти - просто сделал несколько обрабатываемых диапазонов, равных количеству группировок 1го уровня.
|
|
8
SerF_2011
02.06.12
✎
23:12
|
Предки = Новый Массив(9);
Для i = 1 По НужныйДиапазон.Rows.Count Цикл
СтрокаДокумента = НужныйДиапазон.Rows.Item(i);
... ... ...
ТекУровень = СтрокаДокумента.OutlineLevel;
Предки[ТекУровень] = СтрокаДокумента.Row;
... ... ...
КонецЦикла;
|
|
9
SerF_2011
02.06.12
✎
23:14
|
НомСтрРодителя = Предки[ТекУровень - 1];
СтрокаРодитель = ДиапазонДляПоискаСтрок.Rows.Item(НомСтрРодителя);
Наименование = СокрЛП(СтрокаРодитель.Cells(НомерКолонкиИмя).Text);
|
|