Найдите значение в столбце B, замените столбец D & E этой строки. - PullRequest
0 голосов
/ 31 января 2019

Новичок в VBA, поэтому будьте осторожны со мной.

У меня есть таблица в следующем формате:

enter image description here

Мне требуетсяVBA, который будет искать в столбце B термин «LBR-0001», а затем заменить содержимое столбца D в этой строке значением «25», а столбец E в этой строке - «AUD».Строка, содержащая «LBR-0001», изменится, поэтому ее нельзя жестко закодировать для конкретной строки.

В настоящее время я использую приведенный ниже код, но он слишком медленный для завершения, так как он ищет до 10000 строк.

For i = 1 To 10000
    With Sheets("LPP_Previous_Month")
    If .Range("B" & i).Value = "LBR-0001" Then _
    .Range("D" & i).Value = "25"
    .Range("E" & i).Value = "AUD"
    End With
Next i

Будем весьма благодарны за любые улучшения.

1 Ответ

0 голосов
/ 31 января 2019

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

dim m as variant

With Sheets("LPP_Previous_Month")

    m = application.match("LBR-0001", .range("B:B"), 0)

    if not iserror(m) then
        .cells(m, "D") = 25
        .cells(m, "E") = "AUD"
    end if

End With

Использовать Application.Match (не worksheetfunction.match)) и вернуть результат в вариант.Это единственный способ надежного тестирования с использованием IsError.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...