Найти все значения в диапазоне и установить другое значение cell.value в следующей ячейке - PullRequest
0 голосов
/ 03 сентября 2018

Здравствуйте, я работаю над макросом, чтобы найти слово Flex в диапазоне строк, но мне нужно установить другое значение, создавая столбец рядом с ним. Но я не могу найти способ перебрать все ячейки до последней строки, и для каждого найденного значения установите еще одну в следующую ячейку и столбец.

Sub Method2()
Dim rng1 As Range
Dim strSearch As String
strSearch = "Flex"
Set rng1 = Range("A:A").Find(strSearch, , xlValues, xlPart)
If Not rng1 Is Nothing Then
    MsgBox "Find has matched " & strSearch & vbNewLine & "corresponding cell is " & rng1.Offset(0, 1)

Else
    MsgBox strSearch & " not found"
End If

End Sub

1 Ответ

0 голосов
/ 03 сентября 2018

Если вы имеете в виду, что «Flex» можно найти несколько раз и вы хотите, чтобы окно сообщения появлялось каждый раз, попробуйте это Если вы хотите изменить значение в следующей ячейке, просто измените строку внутри цикла Do.

Это использует FindNext и записывает адрес первого поиска и продолжает цикл, пока мы не вернемся туда, что означает, что пришло время остановиться.

Sub Method2()

Dim rng1 As Range
Dim strSearch As String, s As String

strSearch = "Flex"
Set rng1 = Range("A:A").Find(strSearch, , xlValues, xlPart)

If Not rng1 Is Nothing Then
    s = rng1.Address
    Do
        rng1.Offset(0, 1).value=1            
        MsgBox "Find has matched " & strSearch & vbNewLine & "corresponding cell is " & rng1.Offset(0, 1)
        Set rng1 = Range("A:A").FindNext(rng1)
    Loop Until rng1.Address = s
Else
    MsgBox strSearch & " not found"
End If

End Sub
...