温馨提示:本文翻译自stackoverflow.com,查看原文请点击:excel - Extract text from the left of "-" but ignore cells that do not contain "-"
excel vba

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

发布于 2020-03-27 11:17:07

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

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

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

同样,如果有帮助,平均大约有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

查看更多

查看更多

提问者
Brendan-John Martin
被浏览
315
Warcupine 2019-07-03 22:52
        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语句