2017-08-13 8 views
0

範囲内の値を見つけて、その値を削除したいとします。セル内の値を見つけて削除するにはどうすればいいですか?

私は値を探していますが、見つかった値ではなく他のセルを削除するコードを見つけました。

これはコードです:

Private Sub CLEAROLD_Click() 

'PURPOSE: Clear out all cells that do not contain a specific word/phrase 

Dim Rng As Range 
Dim cell As Range 
Dim ContainWord As String 

'What range do you want to search? 
Set Rng = Range("AA2:AC25") 

'sub for the word 
shorttext = traintype1.Value & number1.Value 

'What phrase do you want to test for? 
ContainWord = shorttext 

'Loop through each cell in range and test cell contents 
For Each cell In Rng.Cells  
    If cell.Find(ContainWord) Is Nothing Then cell.ClearContents 
Next cell 

End Sub 

私はif条件を変更しようとしましたが、私はそれを動作させることはできません。

+0

を使用する方が速いと思いませんか? (変更されなかった変更) – jsotola

+0

質問のタイトルに大文字のみを使う必要はありません。 – trincot

答えて

2

For Each cell In Rng.Cellsを使用して範囲のセルをループするので、セルの値を直接ContainWordと比較できます。

は交換してください:付き

If cell.Find(ContainWord) Is Nothing Then cell.ClearContents 

If cell.Value2 = ContainWord Then cell.ClearContents 
+0

THX今は仕事です。その問題は、私が(もし)正しいために新しい価値スペースを使わなかったということでした。 –

+1

ありがとう:私はそれをしました –

1

は、あなたがどのような変更を行ったの置き換え機能

rng.Replace What:=shorttext, Replacement:="", LookAt:=xlWhole, _ 
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
       ReplaceFormat:=False 
関連する問題