从“-”的左侧提取文本,但忽略不包含“-”的单元格

时间:2019-07-03 14:34:38

标签: excel vba

我正在尝试从单元格中提取一些值。

我已经弄清楚了如何提取“-”左侧的单元格值,但是当该单元格根本没有“-”时遇到一个错误。 如何忽略这些单元格/错误?。

任何帮助或改善我所作所为的方法都将不胜感激。

如果有帮助,平均大约有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 个答案:

答案 0 :(得分:2)

        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,这只是另一种方式。重要的部分是使用instr()的if语句