2012-03-15 92 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

相关问题