2012-03-15 91 views
0

我有兩個列和ID,例如「TCG45436」在他們兩個。第一列包括括號中的數字,如「TCG45436(5)」。我需要檢查兩列以查看ID是否匹配,並清除第二列的單元格內容(如果不匹配)。問題是如果第一列包含(5),則兩者不匹配,但我只需要ID本身就可以在兩列中匹配。在過去,我使用子字符串來做類似的事情,以查找列2是否是第一列的子字符串,但我無法弄清楚如何在這裏應用它。如何檢查單元格的值是否是另一個單元格的子值

本質上,我希望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 2012-03-15 20:31:31

+0

@assylias是的,很抱歉,我無法閱讀。這就是爲什麼我不想爲1200行手動執行此操作。我會改變它,希望沒有人注意到。 – 2012-03-15 20:33:17

回答

3

你可能想使用InStr功能:

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

正是我需要的功能。謝謝! – 2012-03-15 20:45:52

+3

糟糕... 1)'!='不是VBA,請使用'<>'。 2)由於括號不匹配,這將不會編譯。 3)糾正這些事情後,由於'InStr'不能返回-1,所以條件將總是*爲真...我希望@ChrisHull注意到了這一點。我糾正了你的答案。 – 2012-03-16 08:09:55

+0

@ Jean-FrançoisCorbett - 我注意到了這兩件事!我只需要學習INSTR就可以了,我設法做出這些小改動以適應我的需求。感謝您爲我們編輯答案。 – 2012-03-19 19:26:00

相關問題