如何在Excel中使用VBA删除“*”或“ – ”字符后面的文本?

我已经写了下面的代码来删除在Excel中使用VBA的行之一中的“*”或“ – ”字符之后的文本,但它给出的错误。 谁能帮忙?

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

正如@JNevill和@fidnwindow的评论所说,你需要testing你的search对象是否被find:

 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没有find它返回0的标准。 所以,现在你正在寻找左-1的字符,将抛出和错误。