1

以前、テキストに文字列が含まれているかどうかを確認する方法を尋ねましたが、そのセルに文字列が見つかった場合は、その文字列を削除したいと思います。

列Cの値が列Wと異なる場合は、列Aに「MIG」が含まれているかどうかを確認します。含まれている場合はセルに追加し、含まれていない場合は何もしません。

このマクロは保存するたびに実行されるため、WとCの値を編集して一致させる場合でも、列Aには「MIG」と表示されます。

したがって、ドキュメントが保存されると、マクロは列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
4

3 に答える 3

2

あなたの論理を理解しているのかわかりませんが、セル値の使用をクリアするには

shtVO.Cells( ... ).ClearContents

編集

の使用Replace

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

MIG
コメントの残りの部分は、たとえば"Fisrt MIG second" ->を置き換えた後、2つのスペースが残る可能性を扱っています。"Fisrt  second"

于 2012-09-11T08:56:28.613 に答える
1

Replace()関数を使用できます。

If shtVO.Cells(Row, 1).Value Like "*MIG*" Then
   shtVO.Cells(Row, 1)=Replace(shtVO.Cells(Row, 1),"MIG","")
End If
于 2012-09-11T09:06:44.523 に答える
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

これも機能します:)

于 2012-09-11T09:04:50.317 に答える