Мне нужно создать список номеров деталей, который показывает все остальные подчасти, которые используются для создания этой первой детали.
Так, например, часть 12345 создается путем объединения abc и def .
У меня есть список из верхнихчасти уровня и второй список с двумя столбцами, показывающими верхний уровень слева и подчасть справа.
Например:
| Top Level Part | | Top Level Part | Sub Part |
| 123456 | | 123456 | abc |
| 234567 | | 123456 | def |
| 234567 | ghi |
| 234567 | jkl |
| abc | yyy |
| abc | zzz |
| yyy | 000000 |
Я использовал a для каждого циклапросмотреть каждую часть в первой таблице и сравнить ее со второй, возвращая каждую часть справа.Однако я изо всех сил пытаюсь пойти глубже, чем на один уровень.
Что я хочу сделать, так это после того, как будет найдена подчасть, которая перебирает список в поисках этого номера детали и возвращает его подчасть.И продолжается, пока часть больше не найдена.Эффективно давая мне дерево.
-123456
--abc
---yyy
----000000
---zzz
--def
-234567
--ghi
--jkl
Цикл, который я использую изначально, таков:
Dim topList as range, top as range
Dim lookupList as range, lookup as range
Dim i as integer
Set topList = .sheets("Sheet1").range("A2:A100")
set lookupList = .sheets("Sheet2").Range("A2:A1000")
i = 1
For Each top in topList
For Each lookup in lookupList
If (top = lookup) then
top.offset(0, i).value = lookup.offset(0, 1))
i = i + 1
End If
Next lookup
Next top
Я рассмотрел использование цикла while внутри этого, который бы повторно сканировал список на наличиеподэлемент, меняя переменную на новый номер детали каждый раз, когда она найдена, и прекращает работу, если деталь не существует в списке.
Хотя я не могу придумать, как это реализовать.