如何在excel中使用VBA删除'*'或' - '字符后的文本?

时间:2016-05-18 20:58:06

标签: excel

我已经编写了以下代码,在excel中使用VBA的行中的'*'或' - '字符后删除文本,但是它给出了错误。有人可以帮忙吗?

Sub Removetext()

For each c In Range("A1:ZZ1")
    c.Value = Left(c.Value, InStr(c.Value, "-") - 1)
Next C

End Sub

1 个答案:

答案 0 :(得分:4)

正如@JNevill和@fidnwindow的评论中所述,您需要测试是否找到了搜索对象:

Sub Removetext()

For Each c In Range("A1:ZZ1")
    If InStr(c.Value, "-") > 0 Then
        c.Value = Left(c.Value, InStr(c.Value, "-") - 1)
    End If
        If InStr(c.Value, "*") > 0 Then
        c.Value = Left(c.Value, InStr(c.Value, "*") - 1)
    End If
Next c

End Sub

问题是,当InStr找不到标准时,它会返回0。所以现在你正在寻找将要抛出的左-1个字符。