Excel VBA - 删除某些字符串

时间:2012-09-11 08:51:29

标签: excel excel-vba vba

我之前曾问过我如何检查一段文字是否包含一个字符串,现在我想删除该字符串,如果在该单元格中找到它。

  

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

因为每次保存都会运行此宏,如果您要编辑W& C使它们匹配,然后A列仍然会说“MIG”。

  

因此,当文档保存时,宏现在会看到C& 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

3 个答案:

答案 0 :(得分:2)

不确定我理解您的逻辑,但要清除单元格值

shtVO.Cells( ... ).ClearContents

修改

使用Replace

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

你的评论的其余部分涉及在替换MIG后你留下双倍空间的可能性 例如"Fisrt MIG second" - &gt; "Fisrt  second"

答案 1 :(得分:1)

您可以使用Replace()函数:

If shtVO.Cells(Row, 1).Value Like "*MIG*" Then
   shtVO.Cells(Row, 1)=Replace(shtVO.Cells(Row, 1),"MIG","")
End If

答案 2 :(得分:0)

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

这也有效:)