我已经编写了以下代码,在excel中使用VBA的行中的'*'或' - '字符后删除文本,但是它给出了错误。有人可以帮忙吗?
Sub Removetext()
For each c In Range("A1:ZZ1")
c.Value = Left(c.Value, InStr(c.Value, "-") - 1)
Next C
End Sub
答案 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个字符。