2012-03-15 13 views
0

私は2つの列とIDの両方に「TCG45436」などのIDを持っています。第1列には、「TCG45436(5)」のようにカッコ内に数字が含まれています。 IDが一致するかどうかを確認するには両方の列をチェックし、一致しない場合は列2のセルの内容をクリアする必要があります。問題は、列1に(5)が含まれている場合、2つの列が一致しないことですが、両方の列で一致するID自体が必要です。私は、カラム2がカラム1の部分文字列であるかどうかを見つけるために、部分文字列を使用してこれまでと同様のことをしましたが、ここでそれをどのように適用するのか分かりません。セルの値が別のセルの部分値であるかどうかをチェックする方法

本質的に、私はこの断片でB30とB32-B37をクリアします。

Excel ScreenShot http://img526.imageshack.us/img526/7646/24288154.png

Sub TwoColumns() 
Do Until ActiveCell.Value = "" 
Column1 = ActiveCell.Value 
Column2 = ActiveCell.Offset(0, 1).Value 

If Column1 = Column2 Then 'needs to be If Column2 is equal to or a subvalue of Column1 
Else 
    ActiveCell.Offset(0, 1).ClearContents 
End If 
    ActiveCell.Offset(1, 0).Select 
Loop 
End Sub 

おかげ

+0

そして、B30とB32の? (x)の前には常にスペースがありますか? – assylias

+0

@assyliasはい、ごめんなさい、私は読むことができません。これは、私が手動で1200行にしたくない理由です。私はそれを上に変更し、誰も気づかないことを願っています。 –

答えて

3

はおそらくInStr機能を使用したい:あまりに

If InStr(0, Column1.Value, Column2.Value) <> 0 Then 'it's a substring. 
+0

私が必要としていた機能。ありがとう! –

+3

おっと... 1) '!='はVBAではなく、 '<>'を使います。 2)括弧が一致しないため、コンパイルされません。 3)これらの問題を修正した後、 'InStr'が-1を返すことができないので、条件は*常に* trueになります。@ChrisHullがこれに気付きました。私はあなたの答えを修正しました。 –

+0

@ Jean-FrançoisCorbett - 私は両方のことに気付きました! INSTRの学習は私が必要としていただけであり、私は自分のニーズに合った小さな変更を加えました。私たちの答えを編集していただきありがとうございます。 –

関連する問題