Это довольно простой пример, и он зависит от того факта, что ваши данные выложены именно так, как вы описали это выше.(Вы можете изменить это, чтобы передать originCell
в качестве аргумента, если хотите, или просто вручную изменить значение при устранении неполадок / реализации.)
Все, что он делает, это берет значение строки исходной ячейки и создаетновый диапазон в столбце A с тем же номером строки.Затем он просто смотрит на ячейку над ним и проверяет, не заполнено ли оно.Если он пуст, он сдвигает диапазон вверх на одну строку, пока не найдет заполненную ячейку.У меня есть это, чтобы поместить значение найденного parentCell
в I3, очевидно, вы можете поместить его где угодно, просто чтобы убедиться, что оно находит правильное значение.
Sub findParent()
Dim originCell As Range, parentCell As Range
Set originCell = Sheet1.Range("E3")
Set parentCell = Sheet1.Cells(originCell.Row, 1)
While IsEmpty(parentCell) = True
Set parentCell = parentCell.Offset(-1, 0)
Wend
Sheet1.Range("I3").Value = parentCell.Value
End Sub
Это было бы хорошей отправной точкойна любое количество решений.В дополнение к передаче originCell в качестве аргумента, вы также можете передать номер столбца, скажем, значения Table_2, которое вы хотите найти, используя такую форму:
Sub findParent(originCell as Range, parentColumn as long)