Excel VBA – 删除某些string

我以前问过如何检查一段文本是否包含一个string,现在我想删除该string,如果它在该单元格中find。

如果列C中的值不同于列W,我检查列A是否包含“MIG”,如果是我将它添加到单元格,如果不是,我什么都不做。

因为每次保存都会运行这个macros,所以如果要编辑W&C中的值使它们匹配,那么列A仍然会说“MIG”。

所以当文件被保存时,macros现在将会看到列C&W是相同的,如果它包含“MIG”,它应该从单元中删除“MIG”。

样品

If shtVO.Cells(Row, 3).Value <> shtVO.Cells(Row, 23).Value Then If shtVO.Cells(Row, 1).Value Like "*MIG*" Then Else shtVO.Cells(Row, 1).Value = shtVO.Cells(Row, 1).Value + "MIG" End If Else If shtVO.Cells(Row, 3).Value = shtVO.Cells(Row, 23).Value Then If shtVO.Cells(Row, 1).Value Like "*MIG*" Then ..... End If End If End If 

不知道我理解你的逻辑,但要清除单元格的使用价值

 shtVO.Cells( ... ).ClearContents 

编辑

使用Replace

 shtVO.Cells( ... ).Value = Replace(shtVO.Cells( ... ).Value, "MIG", "") 

您的评论的其余部分处理您replaceMIG后留下双倍空间的可能性
例如"Fisrt MIG second" – > "Fisrt second"

您可以使用Replace()函数:

 If shtVO.Cells(Row, 1).Value Like "*MIG*" Then shtVO.Cells(Row, 1)=Replace(shtVO.Cells(Row, 1),"MIG","") End If 
 If shtVO.Cells(Row, 1).Value Like "*MIG*" Then shtVO.Cells(Row, 1).Replace What:="MIG", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False End If 

这也起作用:)