Страницы: 1
RSS
Как вытащить в строку значение родителя, Как вытащить в строку значение родителя, к которому привязаны вложенные элементы
 
Как вытащить в строку значение родителя, к которому привязаны вложенные элементы
 
mediamarket86, например, проверять количество отступов (Range()IndentLevel) во 2ом столбце
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
написал:
Range()IndentLevel
Спасибо, пПосмотрел, Range()IndentLevel - только через VBA видимо.

В VBA вообще не шарю, сможете помочь? отблагодарю.
 
Что то типа такого
Код
Sub mediamarket86()
Dim iCell As Range
Dim art
For Each iCell In Range("A8:A" & Cells(Rows.Count, "A").End(xlUp).Row)
  If iCell.Rows.OutlineLevel = 4 Then art = iCell.Text
  If iCell.Rows.OutlineLevel > 4 Then iCell.Offset(, 3) = art
Next
End Sub
Изменено: Sanja - 21.11.2023 16:36:40
Согласие есть продукт при полном непротивлении сторон.

Контакты, благодарности
 
Цитата
написал:
Прикрепленные файлы
Для парсинга.xlsm  (168.62 КБ)
С меня благодарсность. Спасибо.
 
Цитата
написал:
КодSub mediamarket86()
Dim iCell As Range
Dim art
For Each iCell In Range("A8:A" & Cells(Rows.Count, "A").End(xlUp).Row)
 If iCell.Rows.OutlineLevel = 4 Then art = iCell.Text
 If iCell.Rows.OutlineLevel > 4 Then iCell.Offset(, 3) = art
Next
End Sub

Выпадают нули в начале строки при переносе, а для артикулов это критично.
И формула дальше не работает при появлении ещё раз 2 уровня вложенности https://disk.yandex.ru/d/yZGx4pL7YI8Dbw

Исходный файл полный https://disk.yandex.ru/d/a5XJ-Y_P_JI7RA
 
Цитата
mediamarket86 написал:
Выпадают нули в начале строки при переносе, а для артикулов это критично.
Нулей, по факту, в ячейке нет (см.рисунок). Ведущий ноль отображается из-за примененного к ячейке формата. Имейте ввиду, если это критично. Можно и в результирующей ячейке отображать нули. Но именно отображать
Код
Sub mediamarket86()
Dim iCell As Range
Dim art
Application.ScreenUpdating = False
ActiveSheet.Outline.ShowLevels rowLevels:=8
For Each iCell In Range("A8:A" & Cells(Rows.Count, "A").End(xlUp).Row)
  With iCell
    If .Rows.OutlineLevel = 4 Then art = iCell.Text
      If .Rows.OutlineLevel > 4 Then
        .Offset(, 3) = art
        .Offset(, 3).NumberFormat = "00000"
      End If
  End With
Next
Application.ScreenUpdating = True
End Sub

Цитата
mediamarket86 написал:
не работает при появлении ещё раз 2 уровня вложенности
Подробнее
Согласие есть продукт при полном непротивлении сторон.

Контакты, благодарности
Страницы: 1
Наверх