Получение ссылки на ячейку для ячейки, найденной путем циклического перемещения по массиву? - PullRequest
0 голосов
/ 06 ноября 2019

Я строю макрос, который должен найти строку на основе значения в одном столбце, затем найти начало данных в этой строке, затем вырезать эту информацию и вставить ее на другой лист. Я падаю на первое препятствие, потому что, хотя я могу заставить свой массив перебирать столбец и находить экземпляры значения, я не могу получить ссылку на ячейку значения.

I 'Я пытался использовать функцию Range.Address, но это вызывает ошибку во время выполнения. 424 Ошибка объекта требуется. Я не уверен, как получить адрес. Код нашел значение в массиве, поэтому он должен знать, где хранится это значение. Вот что у меня есть

Dim element As Variant
Dim checker As Boolean
Dim elementAddr As String

MyArray = Range("S2:S10").Value2

For Each element In MyArray
    If element = "Completed." Then
    elementAddr = element.Address
    Worksheets("Test").Range("A1").Value = elementAddr
    Exit For
    End If
Next element

End Sub

Так что, кроме ошибки при попытке получить ссылку, цикл массива работает отлично. Как только цикл обнаружил в массиве ячейку с надписью «Завершено», как я могу получить ссылку на эту ячейку в виде строки?

1 Ответ

2 голосов
/ 06 ноября 2019

В качестве заметок BigBen вы можете использовать Match():

Dim m

With Range("S2:S10")
    m = Application.Match("Completed.",.cells, 0)
    If Not IsError(m) Then Range("A1").value = .Cells(m).Address 
End With

или Find():

Dim f As Range

Set f = Range("S2:S10").Find("Completed.", lookat:=xlWhole)
If Not f Is Nothing Then Range("A1").value = f.Address 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...