Это простой пример использования переменной счетчика, предполагающей, что оба диапазона - один столбец и выровнены.Он подсчитывает количество ячеек в первом именованном диапазоне (заданном в переменной a) до того, как будет найден x, и получает значение в той же позиции в именованном диапазоне b.Примечание. Я использую неявные ссылки на активные листы, и вы должны указать имя листа перед именованными диапазонами.
Option Explicit
Public Sub test()
Dim a As Range, b As Range, rng As Range, counter As Long
Set a = Range("range1"): Set b = Range("range2")
For Each rng In a
counter = counter + 1
If rng = "x" Then
Range("I46") = b.Cells(counter)
Exit For
End If
Next
End Sub
Список всех совпадений через пробел:
Option Explicit
Public Sub test()
Dim a As Range, b As Range, rng As Range, counter As Long, outputString As String
Set a = Range("range1"): Set b = Range("range2")
For Each rng In a
counter = counter + 1
If rng = "x" Then
outputString = outputString & Chr$(32) & b.Cells(counter)
End If
Next
wspGen.Range("I46") = Trim$(outputString) ' wspGen.Range("I46") is defined in your code. This is illustrative.
End Sub