Excel 从“文本”的左侧提取文本-&引用;但忽略不包含“的单元格”-&引用;

Excel 从“文本”的左侧提取文本-&引用;但忽略不包含“的单元格”-&引用;,excel,vba,Excel,Vba,我试图从单元格中提取一些值 我已经找到了如何提取“-”左侧单元格的值,但是当单元格中根本没有“-”时,我遇到了一个错误。 如何忽略这些单元格/错误 任何帮助或改进我所做工作的方法都将不胜感激 如果有帮助的话,平均大约有20000行 Dim r尽可能长 昏暗的位置如长 我和你一样长 将ws设置为工作表 设置ws=工作表(“NHBRSummary”) 设置ws=工作表(“表1”) m=ws.Cells(ws.Rows.Count,“F”).End(xlUp).Row 对于r=2到m 位置=仪表(1,

我试图从单元格中提取一些值

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

任何帮助或改进我所做工作的方法都将不胜感激

如果有帮助的话,平均大约有20000行

Dim r尽可能长
昏暗的位置如长
我和你一样长
将ws设置为工作表
设置ws=工作表(“NHBRSummary”)
设置ws=工作表(“表1”)
m=ws.Cells(ws.Rows.Count,“F”).End(xlUp).Row
对于r=2到m
位置=仪表(1,单元格(r,1),“-”)
单元格(r,2)。值=左侧(单元格(r,1),位置-1)
下一个
端接头
将ws设置为图纸,然后立即对其进行更改,如果不使用,则应删除第一组ws


如果愿意,您仍然可以使用left()和location,这只是另一种方法。重要的部分是使用instr()的if语句

如果位置>0,那么
…谢谢,它就像一个符咒一样工作。解决办法总是简单的haha@asger好的观点,一个有陈述的人会是一个很好的补充。天啊,是的,我同时在做我自己的工作。。。我的错。
        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