Извлечь текст слева от «-», но игнорировать ячейки, которые не содержат «-» - PullRequest
1 голос
/ 03 июля 2019

Я пытаюсь извлечь некоторые значения из ячейки.

Я выяснил, как извлечь значение ячейки слева от «-», но я столкнулся с ошибкой, когда ячейка вообще не имеет «-». Как мне игнорировать эти ячейки / ошибки?

Любая помощь будет высоко ценится или способы улучшить то, что я сделал.

Также, если это поможет, в среднем примерно 20000 строк.

    Dim r As Long
    Dim Location As Long
    Dim m As Long
    Dim ws As Worksheet

    Set ws = Worksheets("NHBRSummary")

        Set ws = Worksheets("Sheet1")
        m = ws.Cells(ws.Rows.Count, "F").End(xlUp).Row
        For r = 2 To m
            Location = InStr(1, Cells(r, 1), "-")
            Cells(r, 2).Value = Left(Cells(r, 1), Location - 1)
        Next

End Sub

1 Ответ

2 голосов
/ 03 июля 2019
        Set ws = Worksheets("Sheet1")
        with ws
             m = .Cells(.Rows.Count, "F").End(xlUp).Row
             For r = 2 To m
                 if InStr(1, .Cells(r, 1), "-") > 0 then
                     .Cells(r, 2).Value = split(.Cells(r, 1).value)(0)
                 end if
             Next
        end with

Вы устанавливаете ws на лист, а затем немедленно меняете его, вам следует удалить первый набор, если вы его не используете.

Вы все еще можете использовать left () и location, если хотите, это просто еще один способ сделать это. Важной частью является оператор if с использованием instr ()

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